Video : JSON_OBJECT Function Enhancements in Oracle Database 19c

Today’s video is a demonstration of some of the enhancements to the JSON_OBJECT function in Oracle Database 19c.

If videos aren’t your thing, you can get the same information, and more, from this article.

The star of today’s video is Patrick Jolliffe. 🙂



Scheduler (DBMS_SCHEDULER) Enhancements in Oracle Database 12.2

Since its release in 10gR1, Oracle have consistently added neat functionality to the “new” scheduler with every database release. Yes, I still call it the new scheduler and you would be surprised how many people still insist on using DBMS_JOB rather than switching to DBMS_SCHEDULER.

Oracle Database 12c Release 2 (12.2) is no exception to this pattern, as once again we have some new stuff to play with.

In website housekeeping news, each scheduler article on the site was getting loaded down with links to other scheduler articles, so I’ve collected them all together into a section on one of my links pages, along with a feature list breakdown, so you don’t have to trawl through all the articles to get to the bit you need. You can see that section here.

For many people the simple example in the first article I wrote on the scheduler will be all they ever use, but it’s good to know what it’s capable of doing, especially when you see what some people get up to with CRON. 🙂



Update: For the person that just contacted me about the non-transactional nature of DBMS_SCHEDULER, I wrote about this here and finally raised an SR about it some time ago. That was converted to a bug, which was then altered to an enhancement request.


This issue is still present in 12cR2, with a workaround of using DBMS_JOB. 🙂

Auditing Enhancements (Audit Policies and Unified Audit Trail) in Oracle Database 12c

security_image1_smallA little over a year ago I was at the BGOUG Spring Conference and I watched a session by Maja Veselica about auditing in Oracle Database 12c. At the time I noted that I really needed to take a look at this new functionality, as is was quite different to what had come before. Fast forward a year and I’ve finally got around to doing just that. 🙂

I’ve tried to keep the article quite light and fluffy. The Oracle documentation on this subject is really pretty good, so you should definitely invest some time reading it, but if you need a quick overview to get you started, my article might help. 🙂

My 12c learning experience continues…



Partitioning Enhancements in Oracle Database 12c Release 1

I was planning to cover this subject in a single article, but it got a bit bulky, so I split it down into 6 little articles.

I’ve also created a links page to bring them all together.

I guess you could call it a list of nice-to-haves, rather than something revolutionary, but I’m sure someone will come back to me saying one of them has changed their life! 🙂



Scheduler Enhancements in Oracle Database 12c

I’ve spent the last couple of days playing around with the scheduler enhancements in Oracle 12c.

I guess the big news is the new “script jobs”, which are pretty cool. This kind-of passed me by until Brynn Llewellyn mentioned them at UKOUG in his Multitenant presentation, at which point I made a note to check them out.

I’ve been having some trouble with the “BACKUP_SCRIPT” jobs up until a few minutes ago. My problem was I couldn’t see what the stdout/stderr text was, so I couldn’t determine why there were not working. The “$ORACLE_HOME/scheduler/log” directory was empty and there were no messages in the trace files or alert log. Then I stumbled upon the new columns added to the ALL_SCHEDULER_JOB_RUN_DETAILS view. The OUTPUT column, not surprisingly, gives you the output from the scripts. Once I could see the error message it took me a few seconds to fix the issue and Bingo! 🙂

The new job types are a nice addition, allowing you to run file-based scripts or incline scripts much more easily that before.




Data Pump Enhancements in Oracle Database 12c

Another one to file under “Not sexy but flippin’ awesome!”

If you are a DBA, you are going to spend a lot of time with Data Pump. All roads seem to lead back to it. 🙂 There are some more headline worthy features, like transportable database, but the two that jumped out at me were actually pretty small, but awesome.

  • “TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y” – Switches table and/or index imports to NOLOGGING for the lifespan of the import operation.
  • “LOGTIME=ALL” – Puts a timestamp in the output message so you can see how long individual operations took.

I wrote up an article about it here.



WITH Clause Enhancements in Oracle 12c…

After doing a number of 12c installations, I decided it was time to write something new. I figured I’d pick something easy to start off with, so here is the first thing off the press.

Over the last year I’ve heard a few speakers talk about these enhancements, but I got myself into a right pickle while I was working through this. If you caught the first draft of this article you would see I made a complete mess of it and jumped to all the wrong conclusions. Having worked through it again with fresh eyes, it all became clear. Of course, if you didn’t see the first draft, then ignore what I said. The article has always been perfect. 🙂

I think I will carry on doing some of the simple stuff to build my confidence before I can tackle something big, like pluggable databases. 🙂



Update: Note to self. Searching the 11gR2 docs for “PRAGMA UDF” is unlikely to result in you finding this 12c feature. Who’da thunk it? Thanks to Tom Kyte for pointing me to the correct doc reference. I’ve altered the searches on my homepage to default to the 12c docs, so hopefully I won’t be such a Muppet next time. 🙂

New scheduler stuff in 11gR2…

There are some nice new features in the scheduler in 11gR2. I’ve written about them here:

Remember, there was already a bunch of new stuff added in llgR1, so there’s a lot of whiz-bang stuff if you are moving from 10g.

I do think there are some real security issues with some of this stuff if it is used unwisely though. The remote jobs (external and database) just strike me as a disaster waiting to happen in the wrong hands. 🙂