Top 60 Oracle Blogs

Recent comments

November 2016

Sangam16 Session: Preventing SQL and PL/SQL Injection Attacks

Thank you all those who came to my session at Sangam 16, the conference of All India Oracle User Group, where I presented as a part of the OTN ACE Directors APAC Tour.

You can download the materials here. Slides and Scripts used in the demo

As always, I would highly appreciate your feedback, be it here as a comment, or via social media or email.

Twitter: @ArupNanda
Google+: +ArupNanda

Initialization Parameters Set at the PDB Level Are Not Always Honored

Before describing the issue that lead to this post, let’s shortly review how the handling of initialization parameters works in a multitenant environment.


Change is probably one of the few constants you can expect in our industry (if that’s not a contradiction in terms!), and one of the biggest changes I have made in my career is taking place right now. I’m moving on – what that means for the future remains unclear at this point in time.

I’ve really enjoyed all the things I did over the past 22 years (well, most of the time anyway!), but for now it’s time for new challenges. Obviously, I’m interested in hearing about any positions out there that might suit my skills, so if you know of anything you can reach out to me at my Gmail address.

As far as the website is concerned, it will remain here for some time at least, but I won’t be posting any new blog posts nor posting on social media for some time while I sort out what the future holds.

Yes, Storage Arrays Can Deduplicate Oracle Database. Here Is Exactly Why It Doesn’t Matter!

I recently had some cycles on a freshly installed Dell EMC XtremIO Storage Array. I took this opportunity to prepare a blog entry about the never-ending topic of whether or not storage arrays are able to reduce physical data capacity through deduplication of blocks in Oracle Database.

Of Course There Is Duplicate Data In Oracle Datafiles

Before I continue, let me say something that may come as a surprise to you. Yes, Oracle Database has duplicate blocks in tablespaces! Yes, modern storage arrays can achieve astonishing data reduction rates through deduplication–even when the only data in the array is Oracle Database (whether ASM or file systems)!

FLASHBACK PLUGGABLE DATABASE now available in #Oracle 12cR2

With the current release 12.2, flashback can be done on the PDB layer. As a prerequisite, the database must be put into local undo mode. That means that each PDB has its own undo tablespace. Some other 12.2 features like hot PDB cloning also require this, so chances are that most 12cR2 multitenant databases will be using that mode.

Oracle 12cR2: Database parameters

For those in a desperate need to learn all 4841 database parameter variations of the…

Top and Tailing Bulgaria.

Tomorrow I head off to Bulgaria for the BGOUG Autumn Conference 2016. I’ve only been to the Bulgarian user group once before, having heard from so many people what a fantastic user group conference it was – and they were right. Milena Gerova and her team do an amazing job of organising it and make everyone feel really welcome. So I am really looking forward to my return.

Oracle DBaaS database available

Just created my first Extreme Performance database in the So just after a…

Oracle Manuals available now!

Have a look what’s new and cool in the full Oracle manuals / documentation…

DBMS_LOCK: How to ensure only one instance of a PL/SQL procedure can execute concurrently.

I recently had a need to ensure that only one instance of a PL/SQL procedure was running concurrently. My solution was to create a named lock with Oracle-supplied DBMS_LOCK package. There are lots of other blogs and posts on the internet on this subject, but this is how I used it.
Just as a row level lock will block another session from obtaining a lock on the same row, a session holding a named lock created with DBMS_LOCK can prevent another session obtaining a lock with the same name.
(updated 21.11.2016) An essential difference is that by default these locks will survive a commit or rollback.  Although you can choose to release them on commit.
In my package MY_PACKAGE, I have a procedure MY_PROCEDURE. I want to ensure that only a single instance of MY_PROCEDURE can run at any one time in my database.