Video : Multitenant : PDB Archive Files in Oracle Database 12.2 Onward

Today’s video is a run through the PDB Archive File functionality introduced in Oracle 12.2.

If you prefer your content in text form, this video is based on the articles here.

The star of today’s video is Maris Elsins. 🙂



WordPress 5.2 “Jaco”

WordPress 5.2 “Jaco” was released yesterday.

For the most part these updates pass me by as I’m not too interested in WordPress features. I just write stuff and publish it. Simple as that. So often I just apply them and forget about them.

One thing that did catch my eye was the mentioned improvement to the Site Health feature, available from “Tools > Site Health”.

After upgrading 5 different WordPress installations, I checked the Site Health on this blog and there were a few things flagged. It turned out I wasn’t on the latest version of PHP, I was on an older version of PHP7, and I had one mandatory and two optional modules missing. I fixed all that with the following.

rpm -Uvh remi-release-7.rpm
yum-config-manager --enable remi-php73
yum update -y
yum install -y php-gd php-bcmath php-pecl-imagick

If you were on the website or blog this morning, you may have had a bit of a funky experience as I restarted Apache a few times. 🙂

All the Site Health tests are passed now. Happy days.

The WordPress update itself went smoothly. I’m guessing by the time you read this, your site may have auto-upgraded anyway.



Video : LISTAGG Analytic Function in Oracle Database

Today’s video is a run through the LISTAGG analytic function, with a little included 19c goodness.

If video is not your thing, you can get all the relevant information from these articles.

The star of today’s video is Michael Rainey. 🙂



Video : Converting Exact to Approximate Query Processing in Oracle Database 12.2 Onward

Today’s video is a dash through some of the Approximate Query Processing functionality introduced in Oracle database 12.2.

If watching videos scares you, don’t worry, you can get all the information and more from these articles.

The star turn in today’s video is provided by Franck Pachot. 🙂



OBUG Tech Days Belgium 2019 : Day 2

Day 2 started a little late for me and I missed the first block of speakers. Sorry Alex!

The first session of the day for me was Franck Pachot with “Microservices : Get rid of your DBA and send the DB into Burnout”. The session started with a rousing chorus of “Happy Birthday” for Franck. My bad summary of the session would be, pick the right tool and the right approach for the job. The “obvious” solution for the job is not always so obvious. One size doesn’t fit all!

After that it was keynote time with Gurmeet Goindi and Maria (questions at the end) Colgan. Gurmeet started off with the key features of Exadata past, present and future. Maria continued with some of the optimiser goodness coming in “a future release”.

Next up was Roger McNicol with “Understanding Oracle External Tables”. This was one of those sessions where I sat smugly thinking, “I knew that”, until he started talking about some stuff I didn’t have a clue about. I’ll check out some of this stuff when I get home and sneak it into some existing articles, then act superior, like I always knew it. 🙂

The next session was “REST enabling your Oracle database with Oracle REST Data Services” by Jeff Smith. Which Jeff Smith? That Jeff Smith! I’ve seen Jeff do this talk before, but he’s reworked his demos, so I wanted to see the new and improved version, and I was the next speaker in this room so… 🙂

I was the next speaker, with my session, “Multitenant : What’s new in Oracle Database 18c and 12.2”. There is a lot of good stuff in the Multitentant architecture now. All my articles on the subject are listed here. I think the session went OK, but I did overrun. Sorry!

From there I popped out with some folks for a farewell drink, then it was off to catch my plane. I ended up on the same train as Maria. When we got to the airport I tried to get her case off the luggage rack and it destroyed my hand. For a totally accurate depiction of what happened, check out the “I’ve got his pig sticker” scene from Blade.

I had about 2 hours before my plane left, so I got out the laptop and played catch-up on life. We boarded about 10 minutes late, and then sat on the plane for about 35 minutes before we left. The flight was fine and we gained back a little time on the way. I got a taxi home and that was the end of the trip!

Thanks to everyone at OBUG for inviting me to come and play. Thanks to the attendees and speakers for making the event happen. This was a self-funded trip, but I’d like to thank the Oracle ACE Program and Groundbreaker Ambassadors Program for allowing me to fly the flag.



Video : JSON Data Guide

Today’s video is an overview of the JSON Data Guide functionality introduced in Oracle 12.2.

If videos aren’t your thing, you can read the articles instead. This video focuses on the main features that were introduced in 12.2, but there are some nice additions in 18c also.

The cameo in today’s video is Toon Koppelaars of #SMartDB fame.



PS. Subscribe to my YouTube channel here.

It’s not my job to do your job for you!

I’m currently drowning in a sea of requests for a number of things, including people wanting me to help them with specific issues, which feels a bit like they want me to do their job for them. I feel a little bit uncharitable saying that, but that’s how it feels.

Let me start by saying I understand what it’s like to be asked to do stuff in your job that you don’t know anything about, and also don’t care about. Sometimes, if you can Google a solution and move on it’s a happy day. Having said that, I’m also aware that I can’t expect every article and blog post I come across to contain exactly what I’m looking for. You have to do a certain amount of digging, mixing & matching and it involves a certain amount of trial and error to get to a solution.

Here’s an example I’ve had recently. I’m not saying this was a case of “do my job for me”. The person in question was very polite and not at all demanding, so I feel safe to use this example, and I’m hopefully not going to offend them.

The interaction started with a question about XMLTABLE. It became clear over time this was actually several points wrapped into one.

  • Basic usage of XMLTABLE, explained here.
  • Usage of XMLTABLE with a variable, rather than from querying a table, explained here.
  • Populating a variable (presumably an XMLTYPE) with XML from a URL, explained here.
  • Dealing with network ACLs, which was mentioned in the previous link, but explained more fully here.
  • Making HTTPS calls from the database, explained here.

All these pieces were already explained on the website, but there wasn’t one page that put them all together. As a result of that question I added a bunch of extra links between articles to make the situation a little more obvious.

People contact you and from their perspective it’s a one-to-one interaction, but from your perspective it’s a one-to-many, as they are not the only person requesting your time. You end up feeling guilty you can’t help more, and I’m sure some of them think you are being a dick because you are not helping them. This situation just doesn’t scale.

It’s almost impossible for anyone to be an expert these days. You have to mix & match information to get to a solution. If you want a job in IT, you have to develop this ability to find information from several sources and combine it to get to a final solution. If you are expecting someone else to do that for you, you are never going to get anywhere.



PS. In my response to a comment below, I am reminded of some words from Tom Kyte who said, “The more you do, the more people want you to do!” 🙂

Visibility vs Results

If you speak to my colleagues you will know one of my regular topics of conversation at meetings is the “judgement of worth” within the company. I get quite annoyed when I see people who I believe are adding value, but always seem to get ignored, while others who talk a great talk, but ultimately can’t walk the walk, seem to catch all the breaks. It seems visibility is more important than getting results these days.

One of my colleagues sent me a link to this article and it really sums up what I keep saying.

I’ve spent the last 18 years telling the internet what I think, so I couldn’t deny a tendency for self-promotion, but I like to think I can actually deliver, not just talk about it! Of course, you will never really know unless you work with me, and that’s the point. It certainly seems people believe what they are told, regardless of whether there is any factual basis to it.

So what should you do? Well in my opinion, maybe this is a start.

  1. Actually learn your subject in the first place. I hope your aim isn’t to be one of these creeps. I hope your aim is to continuously improve and deserve any good breaks you get.
  2. Learn to speak about your subject in a clear, concise and professional manner. Don’t sit there silently, then blame the world for being unfair. The world is unfair! Deal with it! Make a positive change! If you need some pointers, I’ve written some public speaking tips here.
  3. Learn to write in a clear, concise and professional manner. If you write unintelligible emails, people are going to assume you are dumb. I happen to think blogging is a good way to improve your writing skills. I’ve written some pointers about blogging here. Ultimately, it doesn’t matter how you get there, but you must be able to make yourself understood.
  4. Don’t let other people take the credit for what you do. I’m not suggesting you write an email to the CEO every time you deploy an application, but by the same token, don’t let someone else stand up and take the credit you deserve, especially if it’s because you are too scared to actually stand up and speak for yourself, and instead rely on others to present your work.
  5. For the bosses out there, try to start judging people by actual results, rather than by what they say they can/have done.

I realise I sound kind-of narky in this post, but I think it’s really important. It really gets on my nerves when I see people taking the credit for other people’s work, and I’m equally annoyed when I see other people letting it happen.

I’m not suggesting you bully the perpetrators, or make a big show of the situation. Just don’t give them the opportunity to steal your moment in the sun!

Good luck folks!



PS. The wife said something in a Facebook comment that reminded me of something I wanted to say. I regularly get accused of name dropping, because I say things like, “I was chatting with X, and they said…”. This isn’t me trying to brag about all the “famous” people I know. It’s because I don’t want to come over as having these ideas for myself. I’m going to name-check people, even if you think it makes me look like I’m bragging, because they deserve the credit for their work and their ideas. If they tell me the origin of their idea, I’ll say, “I spoke to X, who said they heard Y say…”. Sorry if this annoys you personally, or you want to make a negative judgement about why I do it, but I think it matters…

VirtualBox 6.0

VirtualBox 6.0.0 has been released.

The downloads and changelog are in the usual places.

I’ve installed it on my Windows 10 laptop at work, which I use with Vagrant for testing of Oracle, WebLogic, Tomcat server builds, as well as Docker builds. I’ll do my personal Windows 10 laptop, old MBP and OL7 server when I get home. 


  • Windows 10 : The install went fine on my home Windows 10 machine. One slight hiccup on my work laptop. The installation went fine, then chucked out a bunch of errors. Once I rebooted it behaved fine. I think this is because we have a company build of Windows 10. I’ve hit a few snags in the past that haven’t been repeatable on Windows 10 at home.
  • macOS Mojave : No worries. I even tried it on an old machine running El Capitan and it was fine there too.
  • Oracle Linux 7 : I couldn’t install straight over the top of the previous version (5.2.22) as it produced conflicts, so I did a “yum remove” of that, then a “yum install” of the new package and it worked fine.

It’s also worth noting I kicked off a few new builds using Vagrant (2.2.2) and they went fine with the new version of VirtualBox.

Anyway, so far, so good.

As always, it’s a new product out of the door. I expect some frequent releases until it settles out, and if you’ve got something that really matters, like you are doing some demos tomorrow, I would probably hang back for a while. 🙂