Oracle APEX 26.1がリリースされたので、OpenAI CodexとClaude CodeによるAPEXlang形式でのアプリケーション生成を試してみます。
Oracle APEX 26.1の実行環境の作成には、ベルギーのUnited Codes社が公開している
UC Local APEX Devを使用します。ブランチ26-2の最新で、Oracle APEX 26.2に対応した環境が作成できます。
インスタンス作成後以下のコマンドを実行し、APEXワークスペースとしてAPEXDEVを作成しています。
local-26ai.sh create-user apexdev
作成したワークスペースAPEXDEVにサインインし、サンプル・データセットのEMP/DEPTをインストールします。
APEX 26.1よりUniversal Themeに、新たにIrisテーマ・スタイルが追加されています。開発ツールの見た目が変更され、少し操作に戸惑います。
サンプル・データセットのEMP/DEPTをインストールします。このデータセットに含まれる表EMPの一覧と操作を行なうAPEXアプリケーションを、CodexとClaude Codeで作成してみます。
APEXおよびデータベース側の準備は以上で完了です。
OpenAI Codex
ホストに作業用のディレクトリを作成します。
mkdir emp-crud
cd emp-crud
Documents % mkdir emp-crud
Documents % cd emp-crud
emp-crud %
Gitで管理する予定はありませんが、Codexが認識するので初期化だけしておきます。
git init
emp-crud % git init
Initialized empty Git repository in /Users/**********/Documents/emp-crud/.git/
emp-crud %
生成するAPEXアプリケーションの出力先となるディレクトリをapplicationsとして作成します。
mkdir applications
emp-crud % mkdir applications
emp-crud %
このAgent SkillsをCodexおよびClaude Code向けにインストールするために、
Microsoft APM(Agent Package Manager)を使用します。作業ディレクトリ以下にファイルapm.ymlを作成し、以下の内容を記述します。
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
scripts: {}
apm.ymlを作成した後、Codex向けにインストールします。
apm install --target codex
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を起動したときに、データベースへのネットワーク接続を許可します。
作業ディレクトリの下の.codex/config.tomlに以下を記述します。
[mcp_servers.oracle-apexdev]
command = "/opt/homebrew/Caskroom/sqlcl/26.1.2.132.1334/sqlcl/bin/sql"
args = [ "-R", "4", "-mcp" ]
id = ""
[sandbox_workspace_write]
network_access = true
以上で、Codexを使ってAPEXアプリケーションを生成する準備ができました。
codexを起動します。
codex --sandbox workspace-write作業ディレクトリを信頼します。
> 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アプリケーションのインポートを行なってください。
生成したアプリケーションのインポートは、MCPサーバー(ツールsqlcl_run)からは実行できないようなので、SQLclをコマンドラインから実行するように指示しています。
ツール実行は随時許可します。
╭───────────────────────────────────────────────────╮
│ >_ OpenAI Codex (v0.130.0) │
│ │
│ model: gpt-5.4-mini medium /model to change │
│ directory: ~/Documents/emp-crud │
╰───────────────────────────────────────────────────╯
Tip: GPT-5.5 is now available in Codex. It's our strongest agentic coding model yet, built to reason
through large codebases, check assumptions with tools, and keep going until the work is done.
Learn more: https://openai.com/index/introducing-gpt-5-5/
› 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アプリケーションのインポートを行なってください。
• apex と apexlang の手順を先に確認して、接続情報とアプリ生成・インポートの流れを固めます。次に oracle-
apexdev MCP で接続して、必要なスキーマ情報を取ります。
• Explored
└ Read SKILL.md (apex skill), SKILL.md (apexlang skill)
────────────────────────────────────────────────────────────────────────────────────────────────────────
• APEXLang のルールでは、まずローカルの生成コンテキストを確認してから app を解決します。workspace probe
と、生成フローの参照元を並行で見ます。
• Explored
└ Read apex-generation.md, prompt-contracts.md
• Ran node /Users/ynakakoshi/Documents/emp-crud/.agents/skills/apex/apexlang/tools/apexctl.mjs workspace
│ probe
└ (no output)
────────────────────────────────────────────────────────────────────────────────────────────────────────
• DB 側はユーザー指定が十分なので、local-26ai-apexdev に接続して APEXDEV スキーマの実体を確認します。並
行できる範囲は後でやりますが、接続とスキーマ取得は順番依存です。
• Calling oracle-apexdev.connect({"connection_name":"local-26ai-apexdev","model":"gpt-5.5"})
Field 1/1 (1 required unanswered)
Allow the oracle-apexdev MCP server to run tool "connect"?
connection_name: local-26ai-apexdev
model: gpt-5.5
1. Allow Run the tool and continue.
› 2. Allow for this session Run the tool and remember this choice for this session.
3. Always allow Run the tool and remember this choice for future tool calls.
4. Cancel Cancel this tool call
enter to submit | esc to cancel
色々と処理中のメッセージが表示されます。作成を指示したAPEXアプリケーション自体は単純なものなので、以降はツール実行の確認は求められますが、Codexから何か確認を求められるということはありません。
色々試してみて、APEXワークスペース名やAPEXアプリケーション名を指定していないと、Codexから入力を求められたので、これらの値はあらかじめプロンプトに含めています。
最終的にAPEXアプリケーションが生成され、ワークスペースにインポートされます。
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
• 最終報告の参照用に、application.apx の該当箇所とページの位置だけ確認します。これでどこが CRUD の入口かを具体
的に示せます。
• Explored
└ Read application.apx, p00001-employees.apx, p00002-employee-form.apx
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
• applications/EMP_CRUD に EMP_CRUD アプリを用意し、local-26ai-apexdev の APEXDEV ワークスペースへ SQLcl でイン
ポートしました。apex validate と apex import は同一 SQLcl セッションで実行し、import は成功、アプリ ID は 112
でした。
- 対話モード・レポートは applications/EMP_CRUD/pages/p00001-employees.apx:62 にあり、EMP を EMPNO 順で表示
し、行クリックでフォームへ遷移します。
- CRUD フォームは applications/EMP_CRUD/pages/p00002-employee-form.apx:18 にあり、EMP の作成・更新・削除を行
えます。
- アプリ定義の入口は applications/EMP_CRUD/application.apx:40 です。
補足として、ライブ SQLcl では authentication.scheme が正でした。リポジトリ側の packaged helper は古い
compiler metadata を掴んでいて、ローカルの補助検証だけは authenticationScheme を期待する状態が残っています。
ライブ import は成功しているので、実運用の source は正しいです。
─ Worked for 10m 18s ──────────────────────────────────────────────────────────────────────────────────────────
› もう一度インポートを実行してください。
• 同じ EMP_CRUD を再インポートします。前回と同じく、まず apex validate を同一 SQLcl セッションで通してから apex
import を実行します。
• Waited for background terminal · sql -name local-26ai-apexdev
• 接続できました。同一セッションのまま validate を実行します。
↳ Interacted with background terminal · sql -name local-26ai-apexdev
└ apex validate -input /Users/ynakakoshi/Documents/emp-crud/applications/EMP_CRUD
• Waited for background terminal · sql -name local-26ai-apexdev
• validate は成功です。同じセッションで import を続けます。
↳ Interacted with background terminal · sql -name local-26ai-apexdev
└ apex import -input /Users/ynakakoshi/Documents/emp-crud/applications/EMP_CRUD
• Waited for background terminal · sql -name local-26ai-apexdev
• 再インポートも成功しました。セッションを閉じます。
↳ Interacted with background terminal · sql -name local-26ai-apexdev
└ exit
• Ran sql -name local-26ai-apexdev
└
SQLcl: Release 26.1 Production on Fri May 15 17:17:57 2026
… +15 lines (ctrl + t to view transcript)
Disconnected from Oracle AI Database 26ai Free Release 23.26.1.0.0 - Develop, Learn, and Run for Free
Version 23.26.1.0.0
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
• 再インポートしました。local-26ai-apexdev への sql -name local-26ai-apexdev セッション内で apex validate を再
実行し、そのまま apex import まで通して、Import successful. を確認しています。
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
› Implement {feature}
gpt-5.4-mini medium · ~/Documents/emp-crud
APEXの環境にサインインし、アプリケーション・ビルダーを開きます。
アプリケーションEMP CRUDが作成されていることが確認できます。
アプリケーションを開いてみます。なぜかテーマのリフレッシュを求められています。
テーマをリフレッシュしたのち、アプリケーションを実行します。
サインインすると対話モード・レポートが表示されます。編集アイコンがアイコンでなくfa-editとなっています。
fa-editをクリックして編集フォームを開くと「Form DML or Initialization process does not have a form region assigned.」というエラーが表示されました。
フォームの初期化プロセスにフォーム・リージョンが割り当てられていないエラーなので、
識別の
フォーム・リージョンに
Employeesを割り当てました。

修正後は、フォームが開くようになりました。
APEXアプリケーションに与えたプロンプトはものすごく単純なものです。APEXlangのスキルに記載されているので、生成されたアプリケーションの検証は実施されていますが、あくまでデータとしての整合性が取れているかの検証で、アプリケーションの不具合を見つけているわけではなさそうです。
とはいえ、Codexで動作するAPEXアプリケーションを生成することができました。実用的なアプリケーションが生成できるかどうかは、プロンプト次第でしょう。
Claude Code
続いて、Claude Codeでも同様の作業を行ってみます。
Claude Codeのapm installのターゲットはclaudeです。
apm install --target claude
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 %
作業ディレクトリの下の.mcp.jsonに以下を記述します。
{
"mcpServers": {
"oracle-apexdev": {
"command": "/opt/homebrew/Caskroom/sqlcl/26.1.2.132.1334/sqlcl/bin/sql",
"args": [
"-R",
"4",
"-mcp"
]
}
}
}
以上で、Codexを使ってAPEXアプリケーションを生成する準備ができました。
Claude Codeを起動します。
claude
Codexと同じプロンプトを与えます。
emp-crud-code % claude
╭─── Claude Code v2.1.142 ──────────────────────────────────────────────────────────────────────────────╮
│ │ Tips for getting started │
│ Welcome back Yuji! │ Run /init to create a CLAUDE.md file with instr… │
│ │ ──────────────────────────────────────────────── │
│ ▗ ▗ ▖ ▖ │ What's new │
│ │ Added new `claude agents` flags: `--add-dir`, `… │
│ ▘▘ ▝▝ │ Fast mode now uses Opus 4.7 by default (previou… │
│ Sonnet 4.6 · Claude Pro · yuji.nkks@gmail.com's │ Plugins with a root-level `SKILL.md` and no `sk… │
│ Organization │ /release-notes for more │
│ ~/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アプリケーションのインポートを行なってください。
⏺ まず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)
⏺ 重要なポリシーとテンプレートを並行して読みます。
Read 3 files (ctrl+o to expand)
⏺ 次に、MCPでデータベースへの接続とEMPテーブル構造の確認を行います。
⏺ データベースに接続してEMPテーブルの構造を確認します。
Called oracle-apexdev (ctrl+o to expand)
⏺ 接続成功。EMPテーブルの詳細情報を取得します。
Called oracle-apexdev (ctrl+o to expand)
⏺ EMPテーブル構造を確認。次にスキャフォールドと対話モードレポート・フォームのテンプレートを読みます。
Searched for 1 pattern, read 26 files, listed 8 directories (ctrl+o to expand)
⏺ Bash(find /Users/ynakakoshi/Documents/emp-crud-code/.claude/skills/apex/apexlang/ -name "*.md" | xargs
grep -l "automaticRowProcessing\|formFetch\|form-initializatio…)
⎿ /Users/ynakakoshi/Documents/emp-crud-code/.claude/skills/apex/apexlang/templates/region-compone
nts/form/form._processes._common.md
/Users/ynakakoshi/Documents/emp-crud-code/.claude/skills/apex/apexlang/templates/region-compone
… +3 lines (ctrl+o to expand)
⏺ Bash(find /Users/ynakakoshi/Documents/emp-crud-code/.claude/skills/apex/apexlang/ -name "*.md" | xargs
grep -l "process.*type\|type.*process\|executionMappingIdentif…)
⎿ /Users/ynakakoshi/Documents/emp-crud-code/.claude/skills/apex/apexlang/references/domains/page-
components/buttons/workflow-button-batch.md
/Users/ynakakoshi/Documents/emp-crud-code/.claude/skills/apex/apexlang/references/domains/page-
… +14 lines (ctrl+o to expand)
Searched for 1 pattern, read 5 files, listed 1 directory (ctrl+o to expand)
⏺ 全テンプレートの確認が完了。アプリケーション生成を開始します。
⏺ Bash(mkdir -p /Users/ynakakoshi/Documents/emp-crud-code/applications/EMP_CRUD/.apex \
/Users/ynakakoshi/Documents/emp-crud-code/applications/EMP_CRUD/deployments \…)
⎿ Done
⏺ Write(applications/EMP_CRUD/.apex/apexlang.json)
⎿ Wrote 3 lines to applications/EMP_CRUD/.apex/apexlang.json
1 {
2 "mmdVersion" : "26.1.0+3102"
3 }
⏺ Write(applications/EMP_CRUD/deployments/default.json)
⎿ Wrote 5 lines to applications/EMP_CRUD/deployments/default.json
1 {
2 "workspace": {
3 "name": "APEXDEV"
4 }
5 }
色々処理が行われ、最終的にAPEXアプリケーションが作成されてワークスペースへのインポートまで実行されます。
⏺ すべての作業が完了しました。結果をまとめます。
---
完了報告
実施内容
1. データベース接続: MCPサーバー oracle-apexdev で local-26ai-apexdev
に接続し、EMPテーブルの構造を確認(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
2. APEXLangアプリケーション生成: applications/EMP_CRUD/ に以下のファイルを生成
- application.apx — アプリ定義(EMP CRUD)
- pages/p00001-home.apx — ホームページ
- pages/p00002-emp-report.apx — 対話モード・レポート(EMP一覧)
- pages/p00003-emp-form.apx — 従業員フォーム(モーダルダイアログ)
- pages/p09999-login.apx — ログインページ
- shared-components/ — 認証・ナビゲーション・LOV(DEPT, MGR)等
3. アプリケーション機能:
- Page 2: EMPの対話モードレポート(行クリックで編集フォームへ、Createボタンで新規作成)
- Page 3: モーダルダイアログフォーム(Create/Save/Delete/Cancelボタン)
- ダイアログクローズ後に自動でIRをリフレッシュ
4. 検証・インポート:
- apex validate -input . → 検証成功(警告なし)
- apex import -input . → インポート成功 → アプリケーションID: 112(ワークスペース: APEXDEV)
✻ Crunched for 44m 14s
※ recap: EMP_CRUDアプリケーション(対話モードレポート+フォーム)をAPEXDEVワークスペースにインポート完了
(アプリID: 112)。次はAPEX Builderでアプリの動作確認を行ってください。 (disable recaps in /config)
─────────────────────────────────────────────────────────────────────────────────────────────────────────
❯
─────────────────────────────────────────────────────────────────────────────────────────────────────────
⏵⏵ accept edits on (shift+tab to cycle) 4% until auto-compact
Codexと同様にAPEXアプリケーションの作成まで実施されます。こちらは、編集アイコンがきちんと作成されています。
編集画面を開くとこちらは「Form DML or Initialization process does not have a form region assigned.」のエラーが発生しました。これは、フォームの初期化プロセス自体が作成されていません。
フォームの初期化プロセスを追加すると、フォームが正しく開きました。
それぞれの作業ディレクトリのapplications/EMP_CRUD以下に、APEXlang形式で出力されたAPEXアプリケーションのエクスポートが含まれています。
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 p00002-emp-report.apx p09999-login.apx
p00001-home.apx p00003-emp-form.apx
applications/EMP_CRUD/shared-components:
authentications.apx build-options.apx lovs.apx
authorizations.apx component-settings.apx static-files.apx
breadcrumbs.apx lists.apx themes
applications/EMP_CRUD/shared-components/themes:
universal-theme
applications/EMP_CRUD/shared-components/themes/universal-theme:
theme.apx
applications/EMP_CRUD/supporting-objects:
supporting-objects.apx
ynakakoshi@Ns-Macbook emp-crud-code %
Google Gemini CLI
Google Gemini CLIでも同様の作業を行ってみます。
Gemini CLIのapm installのターゲットはgeminiです。
apm install --target gemini
MCPサーバーは.gemini/settings.jsonに設定します。
{
"mcp": {
"allowed": ["oracle-apexdev"],
"excluded": []
},
"mcpServers": {
"oracle-apexdev": {
"command": "/opt/homebrew/Caskroom/sqlcl/26.1.2.132.1334/sqlcl/bin/sql",
"args": ["-R", "4", "-mcp"],
"env": {},
"trust": false
}
}
}
以上で、Gemini CLIを使ってAPEXアプリケーションを生成する準備ができました。
gemini
Codexと同じプロンプトを与えます。
▝▜▄ Gemini CLI v0.42.0
▝▜▄
▗▟▀ Signed in with Google /auth
▗▟▀ Plan: Gemini Code Assist in Google One AI Pro /upgrade
⚠ Skill conflict detected: "graal" from "/Users/ynakakoshi/.agents/skills/graal/SKILL.md" is overriding the same skill from
"/Users/ynakakoshi/.gemini/skills/graal/SKILL.md".
⚠ Skill conflict detected: "db" from "/Users/ynakakoshi/.agents/skills/db/SKILL.md" is overriding the same skill from
"/Users/ynakakoshi/.gemini/skills/db/SKILL.md".
⚠ Skill conflict detected: "apex" from "/Users/ynakakoshi/.agents/skills/apex/SKILL.md" is overriding the same skill from
"/Users/ynakakoshi/.gemini/skills/apex/SKILL.md".
⚠ Skill conflict detected: "db" from "/Users/ynakakoshi/Documents/emp-crud-gemini/.agents/skills/db/SKILL.md" is overriding the same skill from
"/Users/ynakakoshi/.agents/skills/db/SKILL.md".
⚠ Skill conflict detected: "apex" from "/Users/ynakakoshi/Documents/emp-crud-gemini/.agents/skills/apex/SKILL.md" is overriding the same skill from
"/Users/ynakakoshi/.agents/skills/apex/SKILL.md".
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
> 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
Database Connection and Schema Discovery: Initializing the project and connecting to the database to retrieve schema information for the EMP table.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ connect (oracle-apexdev MCP Server) {"connection_name":"local-26ai-apexdev","model":"gemini-2.0-flash-exp"} │
│ │
│ 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"},{"name":"VALUE","type":"VARCHAR2"}],"items": │
│ [ │
│ {"parameter":"NLS_RDBMS_VERSION","value":"23.0.0.0.0"} │
│ ,{"parameter":"NLS_NCHAR_CONV_EXCP","value":"FALSE"} │
│ ,{"parameter":"NLS_LENGTH_SEMANTICS","value":"BYTE"} │
│ ,{"parameter":"NLS_COMP","value":"BINARY"} │
│ ,{"parameter":"NLS_DUAL_CURRENCY","value":"$"} │
│ ,{"parameter":"NLS_TIMESTAMP_TZ_FORMAT","value":"DD-MON-RR HH.MI.SSXFF AM TZR"} │
│ ,{"parameter":"NLS_TIME_TZ_FORMAT","value":"HH.MI.SSXFF AM TZR"} │
│ ,{"parameter":"NLS_TIMESTAMP_FORMAT","value":"DD-MON-RR HH.MI.SSXFF AM"} │
│ ,{"parameter":"NLS_TIME_FORMAT","value":"HH.MI.SSXFF AM"} │
│ ,{"parameter":"NLS_SORT","value":"BINARY"} │
│ ,{"parameter":"NLS_DATE_LANGUAGE","value":"AMERICAN"} │
│ ,{"parameter":"NLS_DATE_FORMAT","value":"DD-MON-RR"} │
│ ,{"parameter":"NLS_CALENDAR","value":"GREGORIAN"} │
│ ,{"parameter":"NLS_NUMERIC_CHARACTERS","value":".,"} │
│ ,{"parameter":"NLS_NCHAR_CHARACTERSET","value":"AL16UTF16"} │
│ ,{"parameter":"NLS_CHARACTERSET","value":"AL32UTF8"} │
│ ,{"parameter":"NLS_ISO_CURRENCY","value":"AMERICA"} │
│ ,{"parameter":"NLS_CURRENCY","value":"$"} │
│ ,{"parameter":"NLS_TERRITORY","value":"AMERICA"} │
│ ,{"parameter":"NLS_LANGUAGE","value":"AMERICAN"} │
│ ]}]} │
│ 20行が選択されました。 │
│ │
│ This is important for correctly interpreting data formats, encodings, and locale-specific behavior. │
│ │
│ 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. │
│ │
│ ✓ Activate Skill "db": Oracle Database guidance for SQL, PL/SQL, SQLcl, ORDS, administration, app development, performance, security, migrations, and a… │
│ │
│ Skill db activated. Resources loaded from /Users/ynakakoshi/Documents/emp-crud-gemini/.agents/skills/db: │
│ │
│ Showing up to 200 items (files + folders). │
│ │
│ /Users/ynakakoshi/Documents/emp-crud-gemini/.agents/skills/db/ │
│ ├───SKILL.md │
│ ├───admin/ │
│ │ ├───backup-recovery.md │
│ │ ├───dataguard.md │
│ │ ├───redo-log-management.md │
│ │ ├───rman-basics.md │
│ │ ├───undo-management.md │
│ │ └───user-management.md │
│ ├───agent/ │
│ │ ├───client-identification.md │
│ │ ├───destructive-op-guards.md │
│ │ ├───idempotency-patterns.md │
│ │ ├───intent-disambiguation.md │
│ │ ├───nl-to-sql-patterns.md │
│ │ ├───ora-error-catalog.md │
│ │ ├───safe-dml-patterns.md │
│ │ └───schema-discovery.md │
│ ├───appdev/ │
│
[これ移行、色々と処理が継続します。]
ところどころで、許可を求められます。
Google Geminiでも最終的にAPEXアプリケーションが作成され、ワークスペースにインポートされました。
... first 5 lines hidden (Ctrl+O to show) ... │
│ 接 続 先 : │
│ Oracle AI Database 26ai Free Release 23.26.1.0.0 - Develop, Learn, and Run for Free │
│ Version 23.26.1.0.0 │
│ │
│ ア プ リ ケ ー シ ョ ン ID: 117を ワ ー ク ス ペ ー ス : APEXDEVに イ ン ポ ー ト し て い ま す │
│ イ ン ポ ー ト に 成 功 し ま し た 。 │
│ │
│ Oracle AI Database 26ai Free Release 23.26.1.0.0 - Develop, Learn, and Run for Free │
│ Version 23.26.1.0.0か ら 切 断 さ れ ま し た │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✓ WriteFile p00002-employees.apx → Accepted (+9, -0)
32 appearance {
33 template: @/interactive-report
34 }
35 + link {
36 + linkColumn: customTarget
37 + target: {
38 + page: 3
39 + items: {
40 + P3_EMPNO: #EMPNO#
41 + }
42 + }
43 + }
44 )
45
46 button create-emp (
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell cd applications/EMP_CRUD && sql -name local-26ai-apexdev <<EOF │
│ │
│ ... first 5 lines hidden (Ctrl+O to show) ... │
│ 接 続 先 : │
│ Oracle AI Database 26ai Free Release 23.26.1.0.0 - Develop, Learn, and Run for Free │
│ Version 23.26.1.0.0 │
│ │
│ ア プ リ ケ ー シ ョ ン ID: 118を ワ ー ク ス ペ ー ス : APEXDEVに イ ン ポ ー ト し て い ま す │
│ イ ン ポ ー ト に 成 功 し ま し た 。 │
│ │
│ Oracle AI Database 26ai Free Release 23.26.1.0.0 - Develop, Learn, and Run for Free │
│ Version 23.26.1.0.0か ら 切 断 さ れ ま し た │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ I have successfully created and imported the APEX application EMP_CRUD.
Work Completed
1. Database Connection: Connected to the local-26ai-apexdev database using the apexdev user.
2. Schema Discovery: Retrieved the structure of the EMP table to identify primary keys and data types.
3. Application Generation:
- Created the application structure in applications/EMP_CRUD using APEXlang.
- Defined a Home Page (Page 1).
- Defined an Employees Report Page (Page 2) using an Interactive Report on the EMP table, including a "Create" button and links to the form.
- Defined an Employee Form Page (Page 3) with Create, Update, and Delete capabilities, including automatic row processing and validation-guarded
buttons.
- Configured Navigation Menus and Shared Components (Theme, Authentication, etc.) based on the standard APEX scaffold.
4. Import and Validation:
- Resolved several APEXlang compilation and import errors related to property names, component nesting, and data type constraints in APEX 26.1.
- Navigated to the application directory and executed apex import via SQLcl as requested.
- The application was successfully imported with Application ID: 118.
Application Structure in applications/EMP_CRUD
- application.apx: Root application definition.
- pages/:
- p00001-home.apx: Landing page.
- p00002-employees.apx: Interactive Report on EMP.
- p00003-employee.apx: Form for EMP CRUD operations.
- p09999-login.apx: Standard login page.
- shared-components/: Lists, Breadcrumbs, Themes, etc.
You can now access the application in your APEX workspace.
[Active Topic: APEX Application Import]
● auto edit press tab twice for more
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
● auto edit
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
CodexやClaude Codeと同様に、APEXアプリケーションは作成されましたが、そのままで利用できるようなアプリケーションではありませんでした。
Codex、Claude Code、Gemini CLIのどれでも、最終的にAPEXアプリケーションが作成されワークスペースにインポートできました。作成するアプリケーションについてはプロンプト次第ですが、データベースの表定義を参照して、APEXのページを生成するという、APEXのアプリケーション作成の基本的なワークフローは、オラクルから提供されているスキルに実装されています。
今回の記事は以上になります。
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完