Oracle Application Express (APEX) 18.2 : Upgrades Complete

A few days ago Joel Kallman announced the release of Oracle Application Express (APEX) 18.2.

In a previous post I mentioned the updates to my Vagrant builds to include this version, as well as updates of Tomcat and Java. I’ve subsequently done the updates for APEX 18.2 on Docker too. If you are interested you can see them here.

In addition to this we’ve rolled APEX 18.2 out at work. We already had some installations of APEX 18.1, but many were stuck on version 5.1.4 because of time constraints. Now everything is up to APEX 18.2. We still have a range of database versions (11.2, 12.1, 12.2 and soon to be 18c) at work, and it’s worked fine on all of them.

I spied a couple of people asking about the upgrade process. There’s no difference to previous versions. In the past, if one of the first two numbers change you do a regular install. If it’s not one of those major version changes you download the patch from MOS and apply it. Since this is a major version number change, I installed it in the normal way and everything was fine. I’m not sure how this will work going forward, as I suspect all releases will start to use the new version format, so does that mean every release from now on will be an “install”, not a “patch”? (see update) Someone has probably discussed this already and I missed it. 🙂

I only have one little gripe about the upgrades, which is I have to run an ORDS Validate once it’s complete to make sure ORDS is working fine. It would be really nice if APEX could fix whatever gets broken in ORDS, so I don’t have to do it. It’s just one less step to do… 🙂

Happy upgrading…



Update: The subject of install vs. patch was raised at OpenWorld 2018. I sounds like the current plan is to get rid of patches and take the install approach each time. The APEX team are working on reducing the downtime associated with the upgrades…

APEX 18.1 Docker Builds Updated

You’ve probably seen that APEX 18.1 was released recently. This is just a quick note to say I’ve updated my Docker builds to include the latest versions of all the software including APEX. You can find the builds here.

I always install APEX into every database, so the database builds include APEX and the ORDS build includes the APEX images.

Remember, I’m not saying you should use these, but if you like to play around with Docker you might find them useful, along with my Docker articles here.

Regardless of how you like to use APEX, get on board with APEX 18.1… 🙂



Hey DBA, install/update APEX!

I recently got a question about APEX, which in itself is kind-of funny as it’s a case of the blind leading the blind, but as a result of that question it became apparent the poster was running a very old version of APEX. My first reaction was “Dude, you really need to upgrade!”. It was at that point I was hit with a line I’ve heard a lot over the years.

“Our DBA(s) won’t install/upgrade APEX!”

This gets on my nerves for a few reasons.

  • APEX is a free (no cost option?) tool. Why would you not take advantage of it if it fits your purpose?
  • Even if you don’t want to use APEX directly, it comes with some useful code. I use the APEX_JSON and APEX_WEB_SERVICE packages all the time from PL/SQL. Why would you hinder your PL/SQL developers by not giving them access to useful stuff?
  • If you already have APEX installed, why would you possibly think it is good to run an old version? Like any other piece of software the upgrades include bug fixes, not just new functionality. Are you really happy about running with un-patched functionality?
  • Of course the newer versions have improved functionality, which is just nice to have. 🙂

I guess I can kind-of understand companies/people who don’t want to install an extra product into the database as it’s another thing to manage, but I really don’t understand people running old versions. I see nothing but disadvantages in that…

So back to the title of this post, “Hey DBA, install/upgrade APEX!”



Oracle Application Express (APEX) 5.1.1 : Live on Production Systems

I wrote a post a couple of weeks ago about our roll-out of APEX 5.1.1 to our Dev and Test systems. In that post I said we would probably go live pretty quickly. I intended to write a quick post to say when it happened, then promptly forgot… 🙂

Just a quick note to say there were no issues found in our Dev and Test systems, so we quickly moved it out to production. I think it was less than a week from start to finish.

As always I feel the need to point out that our usage of APEX is quite basic. We don’t have loads of applications and the ones we have aren’t super complex, so it’s pretty easy for us to quickly get some confidence in a new release. I’m not suggesting heavy APEX users should be quite as rapid as us. That said, I think it’s nice to let people know that this stuff does do what it’s meant to. 🙂

We now have 5.1.1 in all our production systems. Happy days!



Oracle Application Express (APEX) 5.1.1

I read Joel Kallman’s post this morning announcing the release of APEX 5.1.1. We’ve got APEX 5.1 across the board, so I downloaded patch 25341386 from MOS, as instructed, and went to work patching stuff.

The patching was just like every other patch I’ve done for APEX (see here), super easy. 🙂

I thought there was a problem with the APEX images, but it turned out I was a donkey and I’d copied the images to the wrong directory on one of the app servers. 🙂

We now have APEX 5.1.1 on all Dev and Test systems. It went so well I’ll probably push it to production really soon. Happy days. 🙂



Oracle Database 12c Release 2 (12.2) : Default APEX Installation Gone!

I’m a fan of APEX, but I am not a fan of the shared installation used in Oracle Database 12.1. I’m sure it is great for some people, but not for me. I prefer to have APEX installed locally in the PDB, which prompted this article.

Fast forward to Oracle Database 12c Release 2 (12.2) and APEX is no longer installed by default. It’s still shipped with the software, see $ORACLE_HOME/apex (see update), but not installed. I am conflicted about this…

  • On the one hand this is great because I don’t have to worry about removing the shared APEX installation before installing it into the PDB.
  • On the other hand this means people have to make an active choice to install APEX, which not everyone will do. That’s a pity. In addition to the tool itself, there is some useful APIs that come with it, like APEX_WEB_SERVICE and APEX_JSON. You don’t really need the later in 12.2 as you have lots of new JSON support, but it’s good to have for backwards compatibility.

So just remember you have an extra job to do after you’ve installed your database, which to install the latest version of APEX. 🙂



Update: As per comment from Joel Kallman, always download the latest version and install in the PDB locally, not in the root!

APEX 5.1 in Production

Just before Christmas I wrote a post about upgrading our development and test APEX installations to the new 5.1 release. We’ve now got it in all our production environments too. 🙂

As far as I’m aware we only had a single issue, which was not directly related to APEX and was actually my fault. I forgot to add the APEX_050100 user to an ACL, so some non-APEX code that was doing web service callouts using the APEX_WEB_SERVICE package stopped working. Once that was added to the ACL all was good.

As always I must stress our company is not a massive user of APEX and most of our applications are fairly vanilla APEX against and databases, so I’m not suggesting your experience will be the same as ours. That said, the move from APEX 5.0.4 to APEX 5.1 was really painless for us.



APEX 5.1 Installations and Upgrades

APEX 5.1 was released for download a few days ago. I tried doing an upgrade against an installation on a VM at home and it worked fine, which was hardly surprising. 🙂

Officially I’m on holiday, but I figured I would upgrade all our Dev/Test installations while everything is quiet. Major version upgrades, changes in either of the first two numbers, require a full installation. There was no major difference between this and what I was doing for the 5.0 installations, so I just edited the existing article and altered the title.

Since all the apps at work use AD authentication, I tested that out against 5.1 too and it worked fine.

So it was really smooth sailing.

As I’ve mentioned previously, we’re a small scale user of APEX, so it’s relatively easy for me to upgrade and test our systems.

We’ll kick the tyres some more in the new year, then upgrade the live systems pretty soon.



The Eternal Newbie

It’s been over a decade since I first heard Tom Kyte talking about Project Marvel, which eventually became Application Express (APEX). Since then I’ve “used” just about every version of APEX. I use the term “used” very loosely, because I typically use APEX for a few days to get a job done, then never touch it again for months. By the time I come back, I pretty much have to start the learning process from the beginning again.

This is a perfect example of the “Eternal Newbie”. I could quite legitimately put 10+ years experience of APEX (including previous names) on my CV and it wouldn’t be a lie, but in reality I’m only about as good as any PL/SQL developer that’s been playing with APEX for a week.

It’s not that APEX is difficult, quite the contrary, but the process of getting good at anything takes time and repetition. You’ve probably heard the variations on “10,000 hours to become an expert” saying. It doesn’t matter that it’s not true or accurate. What matters is it highlights the need for time, repetition and constantly striving to improve. A little plodding once in a while does not count for experience in my book.

As an example of this, on Friday I was trying to get something to work with a Shuttle control in APEX 5.0.2. I found a couple of great examples on Dmitri‘s and Denes blogs, which (I thought) got me 90% of the way to what I wanted to achieve, but the last 10% took me half of Friday, then the whole of Saturday evening. If I was actually any good at this stuff it would have probably taken me 2 mins. What’s more, if I was good, I would have probably realised Dmitri and Denes’ examples actually got me to 99.9% of what I was trying to achieve, but my inexperience meant I kept shooting myself in the foot. After all that time playing and reading, I felt like a master of Shuttle controls in APEX, but if I don’t look at APEX for a week I’m going to be totally screwed. I have some knowledge now, but it will take repetition to make it stick, and based on past experience, that’s not going to happen. 🙂

I did a video a few months ago about the term “Senior” in relation to IT jobs. My recent fumblings with APEX made me think about this subject again.

With my 10+ years of APEX experience, I’m obviously a “Senior APEX Developer”. Just remind me, how do I alter a breadcrumb? 🙂



APEX 5.0.2 : Let’s get patching!

APEX 5.0.2 was released just before OOW15. Today is my first day back to work, so I’ve started to patch some stuff. We were already on APEX 5.0.1 across the board, so we didn’t need to do any full installations, just patches.

SO far, so good. No problems in any Dev or Test databases. I expect a pretty quick roll-out across the board.