
How to Deploy APEX Applications with SQLcl Projects
Release an APEX application and its schema changes together with SQLcl Projects and Git, deploy them to production, and check what arrived.
Oracle APEX (Application Express) is a low-code development platform for building scalable, secure enterprise applications. It allows developers to quickly create web-based applications using a browser-based interface, reducing the need for extensive hand-coding.
For a more structured learning journey, you can also explore the Oracle APEX Roadmap for a sequential path through related concepts, features, and development topics.

Release an APEX application and its schema changes together with SQLcl Projects and Git, deploy them to production, and check what arrived.

Export an APEX application with SQLcl, split it into files for Git, review a change, and install it in another workspace under a new ID.

Trace a generic ORDS 555 error to the Oracle error behind it, through the ORDS log or debug output, and know the common status codes.

Stop REST clients from overwriting each other's changes with ETags and If-Match, and skip unchanged responses with 304.

Move ORDS REST modules between databases as scripts with SQLcl or ORDS_EXPORT, and restore a deleted module from its export.

Turn a JSON relational duality view into a document REST API with ORDS, with updates and built-in conflict detection.

Use the OpenAPI documents ORDS generates for your REST modules, add good descriptions, and view them in Swagger UI.

Send SQL to ORDS over HTTP and get JSON results, with bind variables and scripts, using an OAuth client instead of a password.

Run one PL/SQL function before every ORDS REST call to log requests and refuse them during maintenance.

Let web applications on other origins call your ORDS APIs, restrict a module to the origins you trust, and test preflights.

Keep ORDS OAuth clients under control: shorter tokens, rotated secrets, revoked roles, and deleted clients.

Let other systems call protected ORDS APIs with an OAuth2 client ID, secret, and short-lived access token.

Stop anonymous access to an ORDS API by mapping a privilege with a required role to its URLs.

Publish PL/SQL functions, procedures, and packages as POST endpoints, pass parameters as JSON, and read results and OUT values.

Serve query results as CSV from ORDS, and add the header row and download file name that the CSV source type leaves out.

Serve stored files over REST with the right MIME type, show images in the browser, and send downloads with a proper file name.

Receive files over REST in an ORDS PL/SQL handler, store them as BLOBs with their MIME type and name, and avoid reading :body twice.

Put related rows and JSON documents into one ORDS response with CURSOR expressions and JSON-typed columns, and avoid the traps.