Oracle Linux 12cR2 Preinstall Package

I was doing some clean Oracle Linux 6 and 7 installs today and look what I noticed in the yum repository for OL6.

Available Packages
oracle-database-server-12cR2-preinstall.x86_64 1.0-1.el6 public_ol6_latest
oracle-rdbms-server-11gR2-preinstall.x86_64 1.0-13.el6 public_ol6_latest
oracle-rdbms-server-12cR1-preinstall.x86_64 1.0-14.el6 public_ol6_latest

And for OL7.

Available Packages
oracle-database-server-12cR2-preinstall.x86_64 1.0-2.el7 ol7_latest
oracle-rdbms-server-11gR2-preinstall.x86_64 1.0-4.el7 ol7_latest
oracle-rdbms-server-12cR1-preinstall.x86_64 1.0-5.el7 ol7_latest

A quick look at the repos and it first turned up in September. I’m surprised I’ve not noticed it before now…



Books I’ve read recently… (Fiction)

For those that don’t know, I came to reading Fiction rather late. In September of 2006, at the age of about 37 I decided to start reading. Up until that point I had pretty much avoided reading wherever possible for most of my life. I did what I had to for my degree, PhD and job, but I was a minimum effort reader. 🙂 The first series of books I read was The Vampire Chronicles and I just carried on.

It’s been almost a year since I last read a novel. I think I got so preoccupied with other stuff I just kind-of stopped and it was a mistake. It’s not like I used the extra time wisely. I just spent longer procrastinating and thinking of what I should be doing. 🙂 On a recent trip to Bulgaria I found myself with several hours to spare on planes and in airports with not much to do, so I opened the Kindle app on my phone and decided to read. I had no internet connection, but I had one book already downloaded and ready to go.

The Trouble with Henry and Zoe is like a rom-com written from a guys perspective. I normally hate rom-coms. They are filled with sickening slush that make me want to vomit and long for the end of the human race. The great thing about this book is it’s not like that at all. It has the normal mix of happy, sad, funny and serious, but none of the cheese. I finished the book hoping for a sequel. I really want to know what happens to these people!

For the sake of full disclosure I must mention I know the author. I went to university with Andy Jones and we were housemates for 5 years during our degrees and PhDs. That probably makes me a bit biased, but I still think it was a great book. When I finished reading it I immediately messaged him saying, “You talented bastard!” 🙂

Fresh off the back of that I downloaded The Two of Us by the same author. This is the sequel to Girl 99, which I read quite a while ago. Girl 99 was also in the “rom-com from a guys perspective” vein, but The Two of Us is a lot more serious. It picks up from the point we left the characters and documents the next period of their lives. As I said, a lot more serious and quite emotionally taxing at times, but still in the rom-com genre. It was really great to learn more about the characters. It would be really interesting to see how different people relate to the central characters. I would guess it would be quite polarising, based on gender, but I might be wrong. 🙂

From there I kind-of came full circle and read Prince Lestat : The Vampire Chronicles. It was a welcome return to the series that got me reading 10 years ago. Lestat is a great character and the story brought together lots of characters and elements from the previous books. By the end of it I was sucked (no pun intended) right back into the world of the Dark Gift.

This morning I finished Prince Lestat and the Realms of Atlantis: The Vampire Chronicles. It had all the trademarks of Anne Rice and The Vampire Chronicles, but I felt at times it was a little over-indulgent. There were several sections of the book where the pacing was just off. I wouldn’t go as far as to say boring, but it needed to be snappier. Having said that, it was really good to see more character development of Amel, the spirit that animates the whole vampire tribe. It felt almost like a new end to The Vampire Chronicles, but maybe it’s a new beginning?

So there you have it. What I’ve read since mid November. I’m not sure where I’m going next…



PL/SQL Objects for JSON in Oracle 12cR2

I’ve been playing around with some more of the new JSON features in Oracle Database 12c Release 2 (12.2).

The first thing I tried was the new PL/SQL support for the JSON functions and conditions that were introduced for SQL in 12.1. That was all pretty obvious.

Next I moved on to the new PL/SQL objects for JSON. These are essentially a replacement for APEX_JSON as far as generation and parsing of JSON data are concerned. If I’m honest I was kind-of confused by this stuff at first for a couple of reasons.

  • If you are coming to it with an APEX_JSON mindset it’s easy to miss the point. Once you “empty your cup” it’s pretty straight forward.
  • The documentation is pretty terrible at the moment. There are lots of mistakes. I tweeted about this the other day and some folks from the Oracle documentation team got back to me about it. I gave them some examples of the problems, so hopefully it will get cleaned up soon!

I was originally intending to write a single article covering both these JSON new features, but it got clumsy, so I separated them.

The second one isn’t much more than a glorified links page at the moment, but as I cover the remaining functionality it will either expand or contain more links depending on the nature of the new material. Big stuff will go in a separate article. Small stuff will be included in this one.

I also added a new section to this recent ORDS article, giving an example of handling the JSON payload using the new object types.

I’ve only scratched the surface of this stuff, so I’ll probably revisit the articles several times as I become more confident with it.



PS. Remember, you can practice a lot of this 12.2 stuff for free at .

Happy Holidays

So it’s Christmas morning here in the UK.

I’m pretty tired after last night’s events. The night before I heard something in my ceiling, which I was hoping was mice, but suspected might be this.

Last night I put a humane trap in the attic and in the evening heard some noise as the trap was rocking back and forth. I took it outside to a hedge about 100 yards away, as suggested by a couple of websites, let it go, then reset the trap. It was a windy night, so the house was creaking a bit. Early this morning I heard more noise, checked and noticed the trap was triggered again. So at about 02:00 on Christmas day I was outside lurking around looking suspicious, letting a second, bigger mouse go. The trap was reset again. This morning, not sign of any more little visitors!

With the thought of visitors in mind, I took a quick look at who was on my website this morning, and sure enough there were 48 Christmas visitors at the time I checked. 🙂

In the third visitor-related point, I’m off now to visit my family for the day!

I’d like to wish you all happy holidays and let’s see if we can make it a great new year together!



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.



VirtualBox 5.1.12

All I want for Christmas is VirtualBox 5.1.12…

Downloads and changelog are in the usual places.

It’s a maintenance release, containing lots of lovely bug fixes, mince pies and eggnog.

I’ve only done the installation on my Windows 7 desktop at work, which was fine. I’ll do the macOS and Oracle Linux 6 installs when I get home and update this post with the results. 🙂



Update: The installation worked fine on macOS Sierra and Oracle Linux 6 hosts.

Old Database Sessions and some more ORDS

I spent some time on two totally unrelated things at the weekend.

Old Database Sessions

We’ve been having some problems with old database sessions recently. One of our reporting servers seems to grab loads of sessions and just not let go. In many cases they seem to remain active for a long time, while doing trivial tasks. My first thought was it was a problem with the database, but there doesn’t seem to be any evidence of that. On occasion we’ve restarted the reporting server and everything has been fine for a few days. I have no control over this reporting server, so I took the pragmatic approach of killing old sessions. Yes, I know it’s an ugly solution, but it works.

I was planning on using a profile to do this, but found there were several applications using the same credentials for different purposes (I inherited this, it’s not my fault OK. 🙂 ), so the profile approach was not going to cut it. Instead I wrote some code to identify the dodgy sessions and kill them, then called this from a job. Ugly, but it worked!

On Saturday I received a Facebook message asking me how to handle this exact same issue, so rather than answer directly I decided to write it up as an article.

I didn’t put it on the front page of the website because it is a back-fill article, rather than bringing anything new to the table.

New ORDS Article

After my recent UKOUG Tech16 session, where I talked about how *I* think you should use ORDS, I wanted to give a better example than the simple CRUD examples seen in most articles. One of my points was RESTful web services against Oracle should represent what Mark Farnham would call Logic Units of Work, rather than a CRUD interface over a table. That resulted in this article.

It includes processing the JSON payload with JSON_TABLE and the APEX_JSON package.



Oracle Database 12c on Fedora 25

I was having a play around with Fedora 25 last weekend and I just noticed there was no associated blog post about it, so here goes.

First the warning I always have to include. Do not install Oracle on Fedora before reading this! With that out of the way, let’s continue.

Since Fedora is the proving ground for future releases of Red Hat Enterprise Linux (RHEL) and I’m a fan of running Oracle on a binary clone of RHEL called Oracle Linux (OL), I am curious about any new release.

Not surprisingly, Oracle database 12c installs really easily on Fedora 25, just as it did on previous releases.

I did have the usual problem with the Perl stuff, as I’m running the VM on a relatively modern MacBook Pro, which has a CPU that freaks out the version of Perl shipped with Oracle, but the article includes a link about how to fix that. I’ve repeated the installation under VirtualBox on systems using older chips (my work PC and an old server at home) and it works without complaint. No drama.

So all seems well in the world of Oracle 12c on Fedora 25. Now you know how to do it, please don’t. Use Oracle Linux. 🙂



UKOUG Tech16 : Wednesday

Similar to last year, I had a presentation on a day I wasn’t attending, so I used my “lunch break” to drive in, present and drive back to work. I did get to see a bunch of people while I was waiting for my session to start, including my dad and wife. 🙂

My session was called “Put your feet up and have a REST. Take a tour of JSON support in the Oracle database.” It was basically a romp through the JSON support provided by ORDS, APEX and Oracle Database 12c (12.1 and 12.2). More importantly, it gave me an opportunity to stand on my soapbox and preach my “how to stay relevant” message.

As a DBA and PL/SQL developer I’m a firm believer in the Thick Database Model, but we are no longer in a position to dictate terms. What we should be trying to do is make the stuff we develop, as well as stuff we have already built over the last 20+ years, as accessible as possible. You can’t achieve that by forcing people to use an Oracle client and telling them to call a packaged procedure. What you can do though is present them with a web service that makes it easy for them to use your code.

I’ve been pushing this message for years with XML web services and SOAP web services from the database. Nowadays the basic message is still the same, but the tools are a little different, and of course XML has been replaced by JSON.

So the question is, do you want to be legacy or play with the “cool kids”? 🙂

Thanks to everyone who came to my session and those that spoke to me during Sunday, Monday and today. Thanks to the folks at UKOUG for inviting me to come and play. As always, big thanks go out to the Oracle ACE Program for letting me continue to fly the flag in my cloud free skies. 🙂



WordPress 4.7 “Vaughan”

WordPress 4.7 “Vaughan” has been released.

The headline features from my perspective are:

  • RESTful web services, so you can do stuff outside the main admin interface.
  • The new “Twenty Seventeen” theme.

There are lots of other features, but they all seem a bit like fluff to me. 🙂

I’ve done the upgrade on five installations and it worked fine on all of them. By the time you read this you may have gone through the auto-update anyway.