Avoiding Coincidental Cohesion

Given that Coincidental Cohesion is bad for our code base so obviously we want to avoid writing utilities packages. Fortunately it is mostly quite easy to do so. It requires vigilance on our part. Utilities packages are rarely planned. More often we are writing a piece of business functionality when we find ourselves in need of some low level functionality. It doesn't fit in the application package we're working on, perhaps we suspect that it (more...)

Utilities – the Coincidental Cohesion anti-pattern

One way to understand the importance of cohesion is to examine an example of a non-cohesive package, one exhibiting a random level of cohesion. The poster child for Coincidental Cohesion is the utility or helper package. Most applications will have one or more of these, and Oracle's PL/SQL library is no exception. DBMS_UTILITY has 37 distinct procedures and functions (i.e. not counting overloaded signatures) in 11gR2 and 38 in 12cR1 (and R2). Does DBMS_UTILITY (more...)

New workshop "Exadata For Developers"

Just a short note that I've developed a new two day course that covers all relevant features that a database application developer should know when dealing with the Oracle Exadata Database Machine platform.

It covers in detail Smart Scans, the Exadata Flash Cache, Hybrid Columnar Compression and all surrounding features like Storage Indexes, (serial) direct path reads etc. etc.. Of course it also includes features that were added in 12c, like Attribute Clustering and Zone (more...)

OHUG 2017 – What Looks Good To Me

So I’m headed to the OHUG 2017 conference next week.  As it is one of the few conferences I attend anymore, I’m pretty excited about going.  I’m particularly interested in information related to the implementation of Oracle HCM Cloud.  So, in  preparation for the conference, I thought I’d share some events and sessions that look good to me.

First, a few caveats about the following list.   I’m presenting twice myself, so I’m breaking my (more...)

DevOps and the Agile DBA

The esteemed ACE Director alumna Kellyn Pot'Vin Gorman is hosting our next webinar!

Attend the free webinar by Kellyn on June 13th and learn how agile best practices and virtualization can help you become better at DevOps.

About the Webinar:
This session discusses common database challenges and how they can be solved with newer DevOps practices without impacting the DBAs “safe zone”.

Development, testing, provisioning, patching, upgrading and managing will become easier with agile tools, (more...)

ORA-12154 in Data Guard environment

Hit this silly issue in one of the data guard environments today. Primary is a 2 node RAC running and standby is also a 2 node RAC. Archive logs from node2 aren’t shipping and the error being reported is

ORA-12154: TNS:could not resolve the connect identifier specified

We tried usual things like going to $TNS_ADMIN, checking the entry in tnsnames.ora and then also trying to connect using sqlplus sys@target as sysdba. (more...)

How to install and configure Oracle Forms & Reports 12c fully unattended – Part 2

Part 2?? Yes! Part 1 - Install FMW Infrastructure and Forms / Reports - can be found at Dirk Nachbars Blog. URL will be shown here as soon as available

The Task:

You have to create several new Forms 12c Domains / Environments

The Problem:

All oracle is providing to create Forms Domains is a Graphical User Interface. And there is no possibility of a 'silent' domain creation. In other words: Oracle does not support (more...)

How to install Oracle Database Cloud Backup Module

I had the joy of using the Oracle Database Cloud backup module a month ago. Needless to say that things changed since last year and some of the blogs posts I found were not relative anymore.

I used the database cloud backup module to take a backup of a local database and restore it in the cloud.

A good start would be this link to the documentation.

The installation is really simple, download the installation (more...)

Verzögerte Cursor Invalidierung nach DDL-Operationen in 12.2

Heute habe ich zwei neue Artikel in meinem Blog-Reader gefunden, die sich mit Themen der verzögerten Invalidierung abhängiger Cursor bei unterschiedlichen DDL-Operationen beschäftigen:
  • Richard Foote erläutert das Verhalten im Zusammenhang mit der Anlage von - was war es noch mal? Ach ja: - Indizes. Wenn man nicht möchte, dass die Erzeugung eines neuen Index automatisch alle von der zugehörigen Tabelle abhängigen Cursor invalidiert, dann kann man das in 12.2 durch die Ergänzung der Klausel (more...)

12.2 Index Deferred Invalidation (Atomica)

One of the useful little features quietly introduced with Oracle Database 12c Release 2 is the ability to now defer the invalidation of dependent SQL cursors when an index is created or modified. This can be useful when you say create a new index which you know will have no impact on any existing SQL […]

Collation in 12cR2 – when AA equals Å (or not?)

Collation in Oracle 12cR2 gives some more finegrained possibilities for setting up how your data is to sorted and compared linguistically. A lot we could do before with NLS_SORT and NLS_COMP and the likes, but the collation features can both be simpler to use as well as offer more detailed control.

But do some testing for your specific language cases - you might find some small surprises like I did when trying it out with (more...)

Containerization, do we need container-carriers?

In maritime logistics containers and container carriers are not really new.

Sitting in the plane, the following thoughts occurred to me…

In fact, containers in IT are a concept which is 1-on-1 derived from these physical containers.
We have seen and read many good and informative blog-posts and presentations about this. Obviously there is a lot of confusion about this as well. In my opinion you should be careful to mix and match too intensively. (more...)

Oracle Database 12c Release 2 – Long Identifiers

Prior to Oracle Database 12c Release 2 have a problem with long identifier name, for example, in 11.2 version you cannot create long name (max 30 Bytes) tables.  As you see, from screenshots length of table name column is maximum 30.

Creating table with long name

Table Name Column size 30

In Oracle Database 12c Release 2 changed the length of identifier names, and this change depends on the COMPATIBLE initialization parameter. Documentation says:

If (more...)

Oracle Database 12c Release 2 – SQL*Plus History Command

As you know that we can repeat our previous SQL*Plus commands in Windows CMD. But in UNIX based systems not supported command line history of SQL*PLus.  For this reason in UNIX and Linux, we used rlwrap utility to see the SQL*Plus command line history and quickly recall previous SQL*Plus commands.

With seconds release of Oracle Database 12c coming SQL*Plus history command for the history of the command line in Linux.

I want to share some example for this (more...)

OTN EMEA Tour 2017 Baku

OTN EMEA Tour 2017 took place.

Our city Baku also included this tour this year also. We (board of Azerbaijan Oracle User Group) organized the biggest event at Baku  (Park in Hotel) by sponsored Azercell Telecommunication Company. This year 3 Oracle ACE Director  Bjorn Rost (Germany), Gurcan Orhan (Turkey), Heli Helskyaho (Finland) and an Oracle ACE Rene Antunez (Mexica)  are our guests. Attendees of our event listened very interesting Oracle technical topics at the event.

Here is (more...)

Carbonated Java & JavaScript Stored Procedures

Carbonated Java Stored Procedures

For accessing JSON Collections and documents without any knowledge of SQL, Oracle furnishes the SODA for Java API. It allows a convenient access and navigation using the dot notation.

How to use SODA for Java in Java Stored Procedures? I have posted the steps, the code samples and scripts on GitHub.

Carbonated JavaScript Stored Procedures 

Nashorn allows interoperability between Java and javaScript. By leveraging such interoperability, I've bee able to reuse (more...)

Semantik des parallel(n) Hints

Jonathan Lewis weist in seinem Blog darauf hin, dass der Hint /*+ parallel(n) */ keineswegs einen parallen Plan erzwingt, auch wenn eine ausreichende Anzahl an parallelen Ausführungsprozessen zur Verfügung steht. Tatsächlich weist der Hint den Optimizer nur dazu an, die Kosten der parallelen Ausführung für jeden überprüften Plan zu berücksichtigen - aber letztlich wählt der Optimizer den Plan mit den niedrigsten Kosten (sofern kein Bug im Spiel ist) und das kann durchaus ein serieller Plan (more...)

Navigating the Oracle Licensing Policy Update: A Look at the Facts

If you’re like us, then you’re never far from the pulse when it comes to changes in software licensing. Keeping up to date with this is a safe way to be sure that you’re making the best decisions for your business when it comes to saving costs and operating efficiently. 

The change that we all seem to be struggling to digest is Oracle’s January 2017 update to its online policy document, “Licensing Oracle Software (more...)


"Have you ever heard a blindfolded octopus unwrap a cellophane-covered bathtub?"
-- Norton Juster, The Phantom Tollbooth

An interesting question was posted on the Oracle General Database forums fairly recently, inquiring about creating a B-Tree index on a BLOB column to speed queries looking for NULLs in that BLOB. The conventional wisdom states that, because it’s a BLOB, NULLs shouldn’t be present. And because it’s a BLOB, containing binary data, creating sucn an index (more...)

New Blog "Clouds and Databases"

Dear Friends,

I have started to write on a brand new blog "Clouds and Databases" that I created recently.

On the new blog, I will be writing about different cloud technologies and databases. Please also join me there if interested in the cloud.

The blog address is http://cloudsanddatabases.blogspot.com and this is how it looks: