Multitenant ORDS with Local APEX in PDBs

ORDS has a great feature that allows you to address PDBs that have APEX in them, just by using the name of the PDB in the URL, right after the ORDS context root. So if I have two PDBs, named apex181 and apex182, I can address them with URLs similar to the following:




The names of my PDBs imply that I have two different versions of APEX installed in the CDB. This (more...)

How do I add an image to a page in Oracle APEX?

Preface:  Many blog posts about Oracle APEX seem to cover a new feature or something rather obtuse & complex.  The sophisticated blog posts have little relevance to someone who is completely new to APEX and Oracle Database.  Having worked with APEX since 1999, it's always difficult for me to put myself in the shoes of a brand new student of APEX.  When I interact with people new to APEX, I try to (more...)

Eine verrückte Zeit endet…

Hallo zusammen,

ich habe leider eine schlechte Nachricht zu verkünden. Ich trete als Leitungskraft innerhalb der DOAG NextGen-Community zurück. Das kommt leider nicht nur für euch überraschend, und glaubt mir, dieser Schritt ist mir nicht leichtgefallen, weil ich weiß, dass ihr da draußen auf das, was die NextGen geleistet hat, vertraut und mit Freude die Entwicklung und den Spirit mitverfolgt habt.

Leider gab es vor kurzem mehrere Vorstandsbeschlüsse, die ein weiteres Engagement für mich praktisch (more...)

APEX client side error messages – apex.message.showErrors

Since APEX 5.1 we have the ability to create client side messages without the requirement to use a plugin or custom code to create nice looking client side messages.

For that requirement the APEX team created the apex.message library.

This library provides the same look and feel as if you would create a message out of your Page Designer > Validation Area.

In this example I will tell you something about a more (more...)

Use a directory structure as Image Prefix in APEX

Usually the APEX images reside in a directory on your server called /i/, which can be changed on instance or application level.

In 95% of all cases I saw, the image prefix is /i/, sometimes it is extended by a version number like /i501/ or /i181/.

Did you know, you can use a whole directory structure (path) as image prefix?

Today this was required by a customer, to nest this path, e.g. as /apex/182/images/


The Oracle APEX Reverse Proxy Guide using NGINX

Just recently I talked about changing the /ords URL to something else, now I want to show another way to manipulate the URL.

I always disliked deploying multiple ORDS instances, just to provide different paths to the same DB. This happened out of legacy or SEO purposes so far.

Now let’s set up a simple reverse proxy to achieve any URL structure you want for your APEX server.

As reverse proxy server I chose to (more...)

Deploy ORDS on tomcat in a subdirectory

Usually ORDS is deployed on Tomcat simply as /ords, right?

What do you do, if you want a different name than ords, let’s say you would like to see “bruce” in the URL? Simple solution: just rename ords.war to bruce.war before deploying to Tomcat.

But what if you want to have “mod/plsql“, as in http://myserver.tld:8080/mod/plsql ?

There is a not so much known feature of tomcat coming to help: # (more...)

Why the Trim Spaces setting on APEX items is important

Oracle APEX offers a declarative setting for Text and Textarea items to “Trim Spaces”, which would remove leading/trailing spaces from the user input before saving the value to the database.

A good example why this is important can be seen in the Page Designer itself. In a customer project we recently stumbled over that. If you accidentally enter a blank into the CSS File URL section…

…you end up with a ressource not found error (more...)

Package API and View changes in Oracle APEX 18.2

A few days ago (Friday, of course) has been upgraded to APEX 18.2. As widely know, once is upgraded the general availability of such a release is very close.

For me it is a stable enough release, to have a look what changed in terms of packages and views.

And there wasn’t a lot that has bee changed, hence this will be a very short blogpost.


2 (more...)

APEX Static Files not served, ORDS returns 404 or why reading logfiles help

On a recent installation we had problems serving APEX static files (application and workspace), they would always report a 404 not found back from ORDS.

Of course I checked all required DB users and the ORDS config files, but couldn’t find anything obvious. Also no REST service defined in APEX would work.

By looking into the tomcat logfile I found a strange error:


with a whole Java Exception (more...)

Increasing Maximum Web Service Requests in Oracle APEX 18.1

While running our final tests of APEX Office Print (AOP) 18.1 we hit "ORA-20000: Issue calling Main AOP Service (REST call: ): ORA-20001: You have exceeded the maximum number of web service requests per workspace."

When you login into the Internal Workspace and navigate to a workspace, there's a setting for  Maximum Web Service Requests. The default value is 1000 requests per 24h (rolling window).

If you know that AOP has next to (more...)

Flagge zeigen – IT gegen Rechts

Ich habe lange gezögert und überlegt… Es ist aber Zeit! Zeit mich zu positionieren, damit jedem klar ist, für welche Form von IT ich stehe. In Zeiten wie diesen ist es nicht mehr möglich, sich einfach weg zu ducken und zu hoffen!
Dazu möchte ich euch kurz etwas über die Geschichte meiner Familie erzählen:
Zwei meiner Urgroßväter haben im 2. Weltkrieg gekämpft - der eine als Freiheitskämpfer für den Kommunismus und der andere als Soldat (more...)

Configure the SQL Developer on Mac OS X for AWS Cloud access

I have struggled a while now to correctly configure my Mac so that I can access an Oracle database in the AWS cloud.

Got a couple of strange connection errors:
I/O-Fehler: General SSLEngine problem
Handshake error

I even created a question in the forum:
At the end my friend Rüdiger helped me finding the right solution.

What was my configuration:
 - Max OS X 'El Captain'
 - JDK version: Build 1.8. (more...)

#nextGENTrip18 a Twitter story

I would like to give you a feeling about our #NextGEN community activities by showing you a collection of tweets at the latest event which we participated:

The #ApexDay2018 in Stockholm at the SWEOUG

We have been 12 IT enthusiast from different places and different life circumstances.
 - 6 women and 6 men
 - 5 students and 5 employees and 2 freelancer
 - 9 Oracle specialists and 7 of them working primary with APEX



Scripting service creation in Oracle APEX

Oracle Academy is a division in Oracle whose mission is to advance "computer science education globally to drive knowledge, innovation, skills development, and diversity in technology fields."  The programs that Oracle Academy offers are free to accredited secondary schools, technical/vocational schools, and two and four-year colleges and universities.

Oracle Application Express (APEX) has been hosted by Oracle Academy and used for many years to facilitate the delivery of curriculum for database design and programming, (more...)

Replace deprecated apex_util.string_to_table (APEX 5.1/18.1)

Sometimes the Oracle APEX documentation announces some packages will become deprecated in a release. It's not that those packages are suddenly gone, but you should not use them anymore. Your code will run fine still, but in the future, APEX might take it out completely, so it's best to replace them with the new package.

One of those packages announced in Oracle APEX 5.1 that are deprecated, and which I used a lot, was (more...)

Installing APEX Packaged Applications – the easy way !

When installing Oracle APEX you also get a wealth of additional resources to explore: Packaged Applications.


I’m sure everyone already looked at one or two of them. But honestly, it is a bit cumbersome to install them, when upgrading APEX version we often forget to re-install the packaged apps.

And so we waste a unique opportunity to learn from all those 30+ Packaged applications. Each of them has something to offer. This might be (more...)

"ORA-22902: CURSOR expression not allowed" in ORDS and APEX and how to fix them

When you want to define different blocks of data, some hierarchical, some not, you can do that by using the cursor expressions in SQL. An example of a query looks like this:

    cursor(select o.order_total, order_name,
              cursor(select p.product_name, i.quantity, i.unit_price

Hide certain objects on an APEX page

A few days ago I got a question on how to hide the title row from the Interactive Report Pivot view.
So the person didn't want to show the red area:

The solution to this problem is to add the following CSS to your page:

table.a-IRR-table--pivot tr:nth-child(3) {

The result is this - the title is gone:

Doing this blog post is not about giving the solution to the above problem. (more...)

Removing Prior Versions of APEX in a PDB

Dimitri Gielis discovered a possible gap in our Application Express Installation Guide about removing prior versions of APEX, when APEX is installed locally in a PDB. If you follow our recommendation to remove the prior version of APEX after a successful upgrade to APEX 18.1, you might run into something similar to the following:

SQL> alter session set container=APEX18;

Session altered.

SQL> SELECT username
  FROM dba_users 
 WHERE (  username LIKE 'FLOWS\_______' ESCAPE '\'