How Not to Make WIT Result in WTH

The support of Women in Technology at Oracle is a fine line and a careful argument. I receive between 20-30 communications in any week on the topic and I think the challenge as I speak to people is the importance of education over persecution. I’m at DOAG, (Deutschland Oracle User Group) conference this week and it’s common for someone to ask to speak to me on the topic of WIT. These valuable conversations have lead (more...)

Purging a cursor in Oracle – revisited

A few years ago I created a post about “how to flush a cursor out the shared pool“, using DBMS_SHARED_POOL.PURGE. For the most part, this method has helped me to get rid of an entire parent cursor and all child cursors for a given SQL, but more often than not I have found than on 12c this method may not work, leaving active a set of cursors I want to flush.

Script below (more...)

FREE customised workshops on "Oracle License Management"


My friend Sibaji Dey Choudhury is offering customised workshops on "Oracle License Management" for members of this group. The workshops are FREE, and are designed to highlight potential Oracle licensing issues that your organisation may be facing. Each workshop will be on a 1-on-1 basis, and will last around 3 to 4 hours depending on the size of the Oracle license estate.

A bit of introduction: Sibaji Dey Choudhury is an experienced Oracle Licensing (more...)

Chatty Applications and Simple SQL

One type of "poor performance" scenario I have come across a few times is due to what I call "chatty applications". These are applications that execute a disproportionally high number of what look like very simple SQL queries for every business transaction they do. And often this is a deliberate design choice by the application architects and developers, claiming that simpler SQL statements on single tables using indexed columns always leads to efficient (more...)

LOBs from afar

This has always been a nuisance.  There you are – getting all the bells and whistles with LOBs…until a database link enters the room Smile

-- Database: DB11
SQL> create table t ( id int, c clob );

Table created.

SQL> insert into t values (1,rpad('x',32000,'x'));

1 row created.

SQL> select * 
  2  from   t;

        ID C
---------- --------------------------------------------
         1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

-- Database: anywhere except DB11
SQL> select * 
  2  from    (more...)


SAP Hana is becoming increasingly popular these days. It comes with its own demo schema, STUDENT. However, being an old Oracle hack, I ported the SCOTT schema from Oracle to SAP Hana. Every Oracle DBA has a bunch of queries against EMP and DEPT tables which he or she may test on the SAP Hana database. In case you’re interested, the export file is available here:


Query Flat Files in S3 with Amazon Athena

Amazon Athena enables you to access data present in flat files stored in S3 (Simple Storage Service) as if it were in a table in the database. That and you don't have to set up any server or any other software to accomplish that.

That's another glowing example of being 'Serverless.'

So if a telecommunication has hundreds of thousands or more call detail record file in CSV or Apache Parquet or any other (more...)

A Test of Common Sense

Imagine you are a couple of window cleaners and you are presented with a glass fronted building like this.

The two doors are electric and will automatically open if anyone, including yourself, approaches them from the inside or outside. Whilst answering the question below, keep in mind this is lunch time, which happens to be the busiest time of the day for people entering and leaving this building.

Which of the following approaches would you (more...)

Oracle Essential Support Tools im Exadata Umfeld

Mein DOAG Vortrag zum Thema

„Oracle Support wie gehe ich vor und welche Tools setze ich im Exadata Umfeld ein“



In der Zwischenzeit hat Oracle eine neue Version den Trace File Analyzer bereitgestellt die man dann auch einsetzen sollte. Einfach über die Doc-ID suchen.

TFA Collector – TFA with Database Support Tools Bundle (Doc ID 1513912.1)

Noch eine Anmerkung für alle die gerade PSU’s etc. eingespielt haben. Leider stellt Oracle Support (more...)

Parse Order and Analysis

Over the years I’ve heard and learned quite a lot about how Oracle does stuff. Some of it was logical, some just details to remember (I have a really lousy memory, but somehow, I actually remember some of the details). Not too long ago I wrote a query and got a parse error, and that … Continue reading Parse Order and Analysis

Baselines – session creating privs v session running privs

A colleague Richard Wilkinson was telling me about an issue he had come across with baselines and I asked him to write it up as it was an interesting experience.

The following MERGE SQL runs once a day. It always uses the same plan and roughly takes between 30 and 80 minutes:

SQL_ID/ PHV 6zs5dk6t6pkfs / 3064471754

 SELECT ilv.bsns_unit_cd,
 ilv.cntnt_cd ,

“It’s The Latest Version!”

"Expect everything, I always say, and the unexpected never happens."
-- Norton Juster, The Phantom Tollbooth

It’s inevitable that shops will eventually need to upgrade to Oracle since 11.2.0.x is soon to be out of support and Oracle 18 (which would have been but Oracle has decided to name new releases with the last two digits of the year of release) is looming (more...)

New READ Object Privilege in 12cR1

In writing a blog post about:
Creating a Read Only Database User Account in an Oracle Database

It came to my attend of the new “READ” object privilege, which is a New Feature in
Changes in Oracle Database 12c Release 1 (
READ and SELECT Object Privileges

The “SELECT” object privilege in addition to querying the table, allow the user to:
LOCK TABLE table_name (more...)

Creating a Read Only Database User Account in an Oracle Database

It can be quite common to create a “Read Only” database user account in an Oracle database.  To do this is pretty simple using the principle of least privilege:


Expected output:


User created.


Grant succeeded.


To see specific tables for a schema:

SET PAGES  (more...)

Changing the port number on a GoldenGate Microservice using REST

The new Oracle GoldenGate Microservices architecture provides a lot of new functionality and opens up a lot of possibilities. Part of these possiblies is to ability to interact with Oracle GoldenGate from a REST API stand point. The framework provides so much flexability and functionality, it is hard to highlight everything it can do.

Since services are the new thing in Oracle GoldenGate, I figured I do something simple and still show you how easy (more...)

FORMAT RELASE changes in #GoldenGate #12.3

This is just a quick note for those who are looking to using Oracle GoldenGate (Classic or Microservices) and want to send trails of a lower version. This information can be found in the Release Notes for Oracle GoldenGate (here).

The default behavior for FORMAT RELEASE settings supported with EXTTRAIL, RMTTRAIL, EXTFILE and RMTFILE has changed. This is due to changes need to support PDBs (more...)

Triggers and Redo: changes on 12.2

In one of the previous posts I showed How even empty trigger increases redo generation, but running the test from that post, I have found that this behaviour a bit changed on 12.2:
In my old test case, values of column A were equal to values of B, and on previous oracle versions including we can see that even though “update … set B=A” doesn’t change really “B”, even (more...)

Build a Parallel Replicat from #Oracle #GoldenGate #AdminClient

One of the new features that came out with Oracle GoldenGate was the introduction of the Parallel Replicat. This new replicat is designed to help users quickly load data into their envrionments by using multiple parallel mappers and threads. Figure 1 shows you what this concept is about.

Figure 1:

What you need to understand about this architecture is that we are still reading a single trail file. We are (more...)

#GoldenGate Microservices (5 of 5) … Performance Metrics Service

This is post 5 of a 5 part post related to Oracle GoldenGate 12.3 Microservices and the final one on the HTML5 web page access. This series of posts will provide some details over the new graphical user interface (GUI) that has been built into Oracle GoldenGate 12.3.

Performance Metric Service is the new performance monitoring service that comes built into Oracle GoldenGate 12.3 Microservices. This is a huge addition to the (more...)

Part VI of my article series "Database as a Service using Enterprise Manager"

Part VI of my article series "Database as a Service using Enterprise Manager"