local-26ai.sh create-user apexdev
OpenAI Codex
Documents % mkdir emp-crud
Documents % cd emp-crud
emp-crud %
emp-crud % git init
Initialized empty Git repository in /Users/**********/Documents/emp-crud/.git/
emp-crud %
emp-crud % mkdir applications
emp-crud %
name: emp-crud
version: 0.1.0
description: Oracle APEX 26.1のAPEXlangを使ってアプリケーションを作成する。
author: Yuji
dependencies:
apm:
# Oracle Database Skills
- git: https://github.com/oracle/skills
path: db
ref: main
# Oracle APEX Skills
- git: https://github.com/oracle/skills
path: apex
ref: main
emp-crud % apm install --target codex
[>] Installing dependencies from apm.yml...
[>] Resolving skills-db...
[>] Resolving skills-apex...
[i] Targets: codex (source: --target flag)
[+] github.com/oracle/skills/apex#main #main @11e528de
|-- Skill integrated -> .agents/skills/
[+] github.com/oracle/skills/db#main #main @11e528de
|-- Skill integrated -> .agents/skills/
[i] Added apm_modules/ to .gitignore
[*] Installed 2 APM dependencies in 3.2s.
emp-crud %
APEXアプリケーションを作成するにあたって、データベースから情報を取得できるようにSQLclのMCPサーバーを構成します。また、コマンドラインからSQLclを起動したときに、データベースへのネットワーク接続を許可します。
[mcp_servers.oracle-apexdev]
command = "/opt/homebrew/Caskroom/sqlcl/26.1.2.132.1334/sqlcl/bin/sql"
args = [ "-R", "4", "-mcp" ]
[sandbox_workspace_write]
network_access = true
> You are in /Users/__________/Documents/emp-crud
Do you trust the contents of this directory? Working with untrusted contents comes with higher risk of
prompt injection. Trusting the directory allows project-local config, hooks, and exec policies to
load.
› 1. Yes, continue
2. No, quit
Press enter to continue
1. MCPサーバーoracle-apexdevで、データベースlocal-26ai-apexdevに接続してください。
2. local-26ai-apexdevはユーザーapexdevで接続されています。これはAPEXワークスペースAPEXDEVのパーシング・スキーマです。
3. スキーマAPEXDEVには表EMPが存在します。
4. APEXlangのスキルを参照して、表EMPの一覧を表示する対話モード・レポートのページと、従業員の作成、更新、削除ができるフォームを持つAPEXアプリケーションEMP_CRUDを作成してください。
5. アプリケーションはディレクトリapplications以下にEMP_CRUDとして作成してください。
6. アプリケーションのインポートはMCPサーバーではなく、applications/EMP_CRUDに移動した後に、"sql -name local-26ai-apexdev"でSQLclを起動し、"apex import"を実行することで、APEXアプリケーションのインポートを行なってください。
╭───────────────────────────────────────────────────╮
│ >_ OpenAI Codex (v0.137.0) │
│ │
│ model: gpt-5.4-mini medium /model to change │
│ directory: ~/Documents/emp-crud │
╰───────────────────────────────────────────────────╯
Tip: New Use /fast to enable our fastest inference with increased plan usage.
› 1. MCPサーバーoracle-apexdevで、データベースlocal-26ai-apexdevに接続してくだ
さい。
2. local-26ai-apexdevはユーザーapexdevで接続されています。これはAPEXワークス
ペースAPEXDEVのパーシング・スキーマです。
3. スキーマAPEXDEVには表EMPが存在します。
4. APEXlangのスキルを参照して、表EMPの一覧を表示する対話モード・レポートの
ページと、従業員の作成、更新、削除ができるフォームを持つAPEXアプリケーション
EMP_CRUDを作成してください。
5. アプリケーションはディレクトリapplications以下にEMP_CRUDとして作成してくだ
さい。
6. アプリケーションのインポートはMCPサーバーではなく、applications/EMP_CRUDに
移動した後に、"sql -name local-26ai-apexdev"でSQLclを起動し、"apex import"を
実行することで、APEXアプリケーションのインポートを行なってください。
• APEXlangの手順を確認しつつ、まずDB接続とスキーマ確認を行います。その後、
applications/EMP_CRUD にアプリを組み立てて、指定どおりSQLcl経由でインポートし
ます。
• Explored
└ Read SKILL.md (apexlang skill)
────────────────────────────────────────────────────────────────────────────────
• DB接続の確立とEMP表の実体を先に確認します。接続後にスキーマ情報を見て、アプリ
生成に必要な構造だけに絞って進めます。
• Called
└ oracle-apexdev.connect({"connection_name":"local-26ai-apexdev","model":"GPT-
5"})
### DATABASE CONNECTION ESTABLISHED ###
Successfully connected to: **local-26ai-apexdev**
### DATABASE ENVIRONMENT CONTEXT ###
**1. Oracle Database Version:**
23.26.1.0.0
**2. Access Mode:**
The Oracle database is currently in 'READ WRITE' mode
**3. NLS Parameters:**
The current Oracle database uses the following NLS configuration:
Database character set:{"results":[{"columns":
[{"name":"PARAMETER","type":"VARCHAR2"},
{"name":"VALUE","type":"VARCHAR2"}],"items":
[
{"parameter":"NLS_CHARACTERSET","value":"AL32UTF8"}
]}]}
Full NLS parameters:
{"results":[{"columns":[{"name":"PARAMETER","type":"VARCHAR2"},{"nam...
Here’s the Oracle database context you need: version, open mode, and NLS
parameters. Use this information to run the following queries accurately
and ensure they align with the database’s current environment and
settings.
• Called
└ oracle-
apexdev.schema_information({"level":"DETAILED","schema":"APEXDEV","model
":"GPT-5","execution_type":"SYNCHRONOUS","objects_list":"EMP"})
Basic Schema Objects Listing:
OWNER,OBJECT_TYPE,OBJECT_NAME
• EMP_CRUD を applications/EMP_CRUD に作成し、EMP 向けの一覧ページと drawer
フォームを組み込みました。MGR と DEPTNO は、コンパイルと import が通る形に合わ
せて数値入力にしています。
変更点:
- アプリ本体を更新: [application.apx](/Users/ynakakoshi/Documents/emp-crud/
applications/EMP_CRUD/application.apx#L1)
- 1ページ目を Employees の Interactive Report に変更: [p00001-home.apx](/
Users/ynakakoshi/Documents/emp-crud/applications/EMP_CRUD/pages/p00001-
home.apx#L1)
- 2ページ目を Drawer Form の CRUD に追加: [p00002-employee-form.apx](/Users/
ynakakoshi/Documents/emp-crud/applications/EMP_CRUD/pages/p00002-employee-
form.apx#L1)
- 共有 breadcrumb / navigation を更新: [breadcrumbs.apx](/Users/ynakakoshi/
Documents/emp-crud/applications/EMP_CRUD/shared-components/
breadcrumbs.apx#L1) と [lists.apx](/Users/ynakakoshi/Documents/emp-crud/
applications/EMP_CRUD/shared-components/lists.apx#L1)
- 仕様書と UX 契約を追加: [application-spec.md](/Users/ynakakoshi/Documents/
emp-crud/.apexlang/application-spec.md#L1) と [app-ux-contract.json](/Users/
ynakakoshi/Documents/emp-crud/.apexlang/app-ux-contract.json#L1)
- app-local runtime metadata に requiresAppUxContract: true を設定: [.apex/
apexlang.json](/Users/ynakakoshi/Documents/emp-crud/applications/
EMP_CRUD/.apex/apexlang.json#L1)
検証結果:
- apexlang validate 成功
- apexlang compiler-truth audit --verify-component-attributes 成功
- sql -name local-26ai-apexdev から apex import を実行し、import 成功
- import 結果: workspace APEXDEV に application ID 100 として取り込まれました
必要なら次に APEX 上でのページ動作確認手順まで詰めます。
─ Worked for 17m 10s ───────────────────────────────────────────────────────────
› Implement {feature}
gpt-5.4-mini medium · ~/Documents/emp-crud
Claude Code
emp-crud-code % apm install --target claude
[>] Installing dependencies from apm.yml...
[>] Resolving skills-apex...
[>] Resolving skills-db...
[i] Targets: claude (source: --target flag)
[+] github.com/oracle/skills/apex#main #main @11e528de
|-- Skill integrated -> .claude/skills/
[+] github.com/oracle/skills/db#main #main @11e528de
|-- Skill integrated -> .claude/skills/
[i] Added apm_modules/ to .gitignore
[*] Installed 2 APM dependencies in 3.6s.
emp-crud-code %
{
"mcpServers": {
"oracle-apexdev": {
"command": "/opt/homebrew/Caskroom/sqlcl/26.1.2.132.1334/sqlcl/bin/sql",
"args": [
"-R",
"4",
"-mcp"
]
}
}
}
emp-crud-code % claude
▗ ▗ ▖ ▖ Claude Code v2.1.145
Sonnet 4.6 · Claude Pro
▘▘ ▝▝ ~/Documents/emp-crud-code
❯ 1. MCPサーバーoracle-apexdevで、データベースlocal-26ai-apexdevに接続してくだ
さい。
2. local-26ai-apexdevはユーザーapexdevで接続されています。これはAPEXワークス
ペースAPEXDEVのパーシング・スキーマです。
3. スキーマAPEXDEVには表EMPが存在します。
4. APEXlangのスキルを参照して、表EMPの一覧を表示する対話モード・レポートのペ
ージと、従業員の作成、更新、削除ができるフォームを持つAPEXアプリケーションEMP
_CRUDを作成してください。
5. アプリケーションはディレクトリapplications以下にEMP_CRUDとして作成してくだ
さい。
6. アプリケーションのインポートはMCPサーバーではなく、applications/EMP_CRUDに
移動した後に、"sql -name local-26ai-apexdev"でSQLclを起動し、"apex
import"を実行することで、APEXアプリケーションのインポートを行なってください。
⏺ Skill(apex)
⎿ Successfully loaded skill
⏺ APEXLangスキルのドキュメントを読み込みます。
Read 2 files (ctrl+o to expand)
⏺ ワークフローファイルを読み込みます。
Read 2 files (ctrl+o to expand)
⏺ ポリシーファイルとテンプレートを確認します。
Read 2 files (ctrl+o to expand)
⏺ スキャフォールドテンプレートを確認します。
Searched for 2 patterns (ctrl+o to expand)
⏺ テンプレートとスキャフォールド例を読み込みます。
Read 4 files (ctrl+o to expand)
⏺ 残りのスキャフォールドファイルを読みます。
Read 2 files (ctrl+o to expand)
⏺ ログインページとグローバルページを確認します。
Read 2 files (ctrl+o to expand)
⏺ 残りのスキャフォールドファイルを確認します。
Read 6 files (ctrl+o to expand)
⏺ データベースへの接続を確認します。まずMCPツールを使ってデータベースに接続しま
す。
⏺ local-26ai-apexdev に接続してEMPテーブルの構造を確認します。
Called oracle-apexdev (ctrl+o to expand)
⏺ 接続成功。EMPテーブルの詳細な構造を取得します。
Called oracle-apexdev (ctrl+o to expand)
⏺ EMP_CRUDアプリケーションの作成とインポートが完了しました。
完了サマリー
APEXアプリケーション: EMP CRUD (App ID: 102, エイリアス: EMP-CRUD,
ワークスペース: APEXDEV)
作成されたページ
┌──────┬───────────────┬─────────────────────────┐
│ Page │ 名前 │ 種別 │
├──────┼───────────────┼─────────────────────────┤
│ 0 │ Global Page │ グローバル │
├──────┼───────────────┼─────────────────────────┤
│ 1 │ Home │ ホームページ (Hero) │
├──────┼───────────────┼─────────────────────────┤
│ 2 │ Employees │ 対話モード・レポート │
├──────┼───────────────┼─────────────────────────┤
│ 3 │ Employee Form │ ドロワーフォーム (右側) │
├──────┼───────────────┼─────────────────────────┤
│ 9999 │ Login Page │ ログイン │
└──────┴───────────────┴─────────────────────────┘
主な機能
- Page 2 (Employees): EMPテーブルをDEPT・自己結合で拡張表示(マネージャー名・
部門名を表示)、編集リンク・「Create
Employee」ボタン付き、フォームを閉じると自動リフレッシュ
- Page 3 (Employee Form): 右側ドロワーフォーム、全カラム編集対応(MGRはEMPから
の選択リスト、DEPTNOはDEPTからの選択リスト)、新規作成・更新・削除に対応
ファイル構成
applications/EMP_CRUD/ 配下に20ファイル(.apex/apexlang.json、5ページ、共有コ
ンポーネント、アイコン等)
再インポート方法
将来コードを修正して再インポートする場合:
cd /path/to/emp-crud-code/applications/EMP_CRUD
sql -name local-26ai-apexdev
# SQLcl内で:
apex import -id 102
✻ Baked for 15m 7s
※ recap: EMP_CRUDアプリケーション(対話モード・レポートとドロワーフォーム)をAPE
XLangで作成し、ワークスペースAPEXDEVにApp ID 102としてインポート済みです。APEX
ビルダーでアプリを確認して動作を検証してください。 (disable recaps in /config)
────────────────────────────────────────────────────────────────────────────────
❯
────────────────────────────────────────────────────────────────────────────────
⏵⏵ accept edits on (shift+tab to cycle) · ← for agents
emp-crud-code % ls -R applications/EMP_CRUD
application.apx page-groups.apx shared-components
deployments pages supporting-objects
applications/EMP_CRUD/deployments:
default.json
applications/EMP_CRUD/pages:
p00000-global-page.apx p00003-employee-form.apx
p00001-home.apx p09999-login.apx
p00002-employees.apx
applications/EMP_CRUD/shared-components:
authentications.apx component-settings.apx static-files.apx
authorizations.apx lists.apx themes
breadcrumbs.apx lovs.apx
build-options.apx static-files
applications/EMP_CRUD/shared-components/static-files:
icons
applications/EMP_CRUD/shared-components/static-files/icons:
app-icon-144-rounded.png app-icon-32.png
app-icon-192.png app-icon-512.png
app-icon-256-rounded.png
applications/EMP_CRUD/shared-components/themes:
universal-theme
applications/EMP_CRUD/shared-components/themes/universal-theme:
theme.apx
applications/EMP_CRUD/supporting-objects:
deinstall-script.sql supporting-objects.apx
emp-crud-code %





