APEX

Vibe-code Oracle APEX with Claude Code + APEXlang (APEX 26.1+)

Export your APEX app as APEXlang files, edit it in VS Code by chatting with Claude Code, then validate and import it back with SQLcl.

Intermediate⏱ 3 min readUpdated: 2026-10-10

APEXlang, introduced in Oracle APEX 26.1, turns your APEX application into readable .apx files. Once it's on disk, an AI coding agent like Claude Code can read the structure and make precise edits. You review the diff in Git, check it with apex validate, and import it back into your workspace with SQLcl.

Export your app to APEXlang

Use SQLcl 26.1.2 or later (the sql command); that is the release that added APEXlang support. Connect as the application's parsing schema and export with -exptype APEXLANG. By default (-exptype APPLICATION_SOURCE), apex export writes the classic SQL export (f100.sql, or a folder of .sql files with -split), not .apx files. The App Builder export page also offers APEXlang as a format if you'd rather download a ZIP.

sql /nolog
SQL> connect my_schema@//localhost:1521/FREEPDB1
SQL> apex export -applicationid 100 -exptype APEXLANG -dir ./app100

SQLcl creates a subfolder named after the application alias (for example ./app100/my-app). Inside it you get application.apx, pages/p00001-home.apx and so on, shared-components/, supporting-objects/ and deployments/default.json (which holds the target application ID). Put it under Git before you let an agent touch it:

cd app100
git init
git add .
git commit -m "APEX app 100 baseline"

Open it with an AI agent

Open the folder in VS Code (or Cursor) with the Claude Code extension. Oracle publishes an apex skill for APEXlang in its open-source oracle/skills repository. It covers APEXlang syntax, examples, and validate/import for APEX 26.1 and 26.2. Install it as a Claude Code plugin:

/plugin marketplace add oracle/skills
/plugin install apex@oracle-skills

Those commands are for the Claude Code terminal (CLI). In the VS Code extension, type /plugins to open Manage plugins. Add oracle/skills on the Marketplaces tab, then install apex from the Plugins tab. Then describe the change in plain English:

› Add a "Status" select list to page 12 with values Open, In Progress, Closed,
  and default it to Open. Don't rename existing components or change their Static IDs.

💡 Keep identifiers stable

Apart from page numbers and the application ID in deployments/default.json, APEXlang does not identify components by numeric IDs. Most components (regions, buttons, processes, dynamic actions) are identified by their Static ID. For example, region buttons ( … ) has the name Buttons and the Static ID buttons, and other components refer to it as @buttons. Page items are identified by item name (pageItem P15_NAME ( … ), used as :P15_NAME in SQL and PL/SQL), interactive grid columns by column name, and pages by number (page 12 ( … )). Oracle advises treating Static IDs as permanent identifiers, so tell the agent not to rename existing components or change their Static IDs. References then stay valid and the diff only shows the change you wanted.

Review, validate and import

Review the diff the agent produced (this is why files + Git matter). Still inside app100, run apex validate, which checks that the APEXlang compiles and doesn't need a database connection. Then connect as the parsing schema and run apex import. Import uses the application ID in deployments/default.json. Add -id to import under a different ID, or -workspace if your schema belongs to more than one workspace.

git diff                      # review what changed
sql /nolog
SQL> apex validate -input ./my-app
SQL> connect my_schema@//localhost:1521/FREEPDB1
SQL> apex import -input ./my-app

ℹ Whole app vs. selected files

In APEX 26.1, apex import imports the whole application. Oracle says APEX 26.2 adds importing only selected APEXlang files. Run help apex import in your SQLcl to see the options your version supports.

⚠ Always review AI edits

Treat AI output like a junior developer's pull request. Read the diff and run apex validate before importing into a real workspace. Import into a development workspace first.

Check your understanding

Check your understanding

0% · 0/3

Why does APEXlang enable AI + Git workflows?

Which apex export option produces APEXlang .apx files?

What should you tell the agent to keep stable?

Need this delivered?

Request a quote