This image has an empty alt attribute; its file name is 2025-Apex_Connect-mit-DB-Banner-820x312-facebook_Header.jpg

After the “Welcome 3rd Day APEX Connect, DOAG e.V.”, and the very entertaining Keynote “Trouble in the Old Republic” by Samuel Nitsche, I decided to attend presentations on following topics:
– 23ai – Building an AI Vector Search API using APEX, ORDS, REST and PL/SQL
– APEX in Style – Ein Überblick über die verschiedenen UI-Customizingmöglichkeiten
– SQL und PL/SQL: Tipps & Tricks für APEX Entwickler
– Oracle APEX & Entra ID: Effiziente Benutzerverwaltung mit Workflows und SSO
Beside the presentations I also had the privilege to have 1:1 sessions with Carsten Czarski, Florian Grasshoff and Mark Swetz from the APEX development Team.

23ai – Building an AI Vector Search API using APEX, ORDS, REST and PL/SQL

Vectors are lists of numbers and their dimension is given by the amount of numbers in the vector definition. The creation of a vector from any other data is called vectorizing or embedding.
Oracle 23ai is having a new vector datatype and an associated PL/SQL package DBMS_VECTOR. Pre-trained Models can be imported based on ONNX standard.
APEX can be used to call external AI models as web services. Any needed transformation can be done thanks to the DBMS_VECTOR package.
One of the main advantage of vector search is language independent.

APEX in Style – Ein Überblick über die verschiedenen UI-Customizingmöglichkeiten

New template components allow to set attributes in templates for declarative usage in APEX.
This can be combined with dedicated CSS to be used in the template component. Those component can be used in any kind of pages (e.g. Interactive Report, Card Reports, …).
When changing templates, it is recommended to do them on a copy in order to be able to rollback to the original one if needed.
Beside the templates Theme can be modified globally with Theme styles over the theme roller. Theme changes can even be allowed to end users in APEX so they can personalize the look & Feel of the application.

SQL und PL/SQL: Tipps & Tricks für APEX Entwickler

SQL queries are in the heart of APEX. Looking into the debugger details of the SQL produced by APEX can be seen. Any filtering or other change will add to the original query and generate a new query which can be seen as onion SQL with following levels adding up:
– Component SQL (written by the developer)
– LOVs
– Computed columns
– Filter
– Sorts
– Aggregation
– Pagination
This means the query run by APEX can be very different than the one entered by the developer.
As a consequence, sorting with ORDER BY should never be part of the component SQL. Use the declarative column sorting parameter instead.
APEX allows to use pseudo-hints in the declarative optimizer hints field in order manage the pagination type.
PL/SQL tips:
– functions in SELECT are run on every row selected (expensive)
– functions in WHERE are run for all rows of the selected table (even more expensive)
– use bind variables so that substitution is happening in the database
– strictly define constants
– name loops
– map parameters
– always raise in “when others” clause of exception handling
– use conditional compilation

Oracle APEX & Entra ID: Effiziente Benutzerverwaltung mit Workflows und SSO

User Management requires an IAM system for easier and centralized use. One combination for APEX is with Microsoft ENTRA.
Possible usage:
– on / offboarding
– details and contact management
APEX is managing access to ENTRA through web services which allows to easily cover the previous use cases. Web services are part of declarative setup to address the Microsoft Graph interface and manage authorizations mapped to application and delegation over groups with ENTRA.
Access is secured with oAuth authentication.

NEWS!

One last news, the support of the last 3 APEX versions (23.2, 24.1 and 24.2) might be extended to 2 years instead of 18 months.

That was the final day of APEX Connect 2025 conference. Great organization, great presentations and great people.
Hope to see all again on APEX Connect 2026.
How about you? Are you planning to join?