Comparing NULLable Values

If a column or expression may be NULL, it is a pain to compare it to something else. Why? Because comparisons involving a NULL do not result in TRUE or FALSE: they result in NULL. I use the DECODE function to work around this problem: here's why - and how.

Oracle Tidbits – February 2015

“Oracle *daily* TidBits” (#oratidbit) published at on weekdays in February 2015. You will also see these tidbits, one tidbit at a time, for each page refresh on the right side of this blog as well… Hope you find these helpful to learn something new or to remind you of its existence and use… Publish Date TidBit 2-Feb #oratidbit […]

Bounce Counter Mismatch

EM agents can end up in several different error states and each of them have their own error image.  This one popped up in my environment this morning on one agent and all of its targets:


A bounce counter mismatch (represented by the ‘N’ in the icon?) occurs when the agent has been restored from a backup on the remote host.  The agent is trying to upload metric data from timestampX but the repository contains (more...)

Listing OEM Administrators

We still use database authentication for our OEM Administrator accounts.  Every once a while (like today) that list needs to be reviewed to evaluate contract employees and others that may have changed jobs.  We use the USER_DESCRIPTION field to store people’s names in OEM so we poll the user_name and its description.

Here’s a simple query, run as SYSMAN user, that creates a list for you in SQL+

COL user_name FORMAT a20
COL user_description FORMAT a35 (more...)

No Oracle instances were discovered do you want to enter one

While try to configure Backup exec agent in database server

“No Oracle instances were discovered do you want to enter one”


add the instance value in /etc/oratab

Anyone need remote help?

Does anyone know of any good contracts that would support mostly remote work?

I started this blog years ago with the idea that it would be a good place to search for work should I ever need it. I think the time has come to just ask to see if projects are available through this avenue. If you know of anything, I would love to speak with you. Would you mind commenting below or sending (more...)

Data Center of the Future – now



photo by youflavio

In a recent blog post Eric D. Brown defined an Agile Data Center as

An Agile Data Center is one that allows organizations to efficiently and effectively add, remove and change services at the speed of the business, not the speed of technology - Eric D. Brown

In follow up post he said that a Agile Data Center could be implemented by Software Defined Data Center (SDDC) for example using machine (more...) by Clive Bostock


This is a reposting of an old blog post that was on but is no longer accessible

More trace file analyzer tools at

Related blog post: Oracle “Physical I/O” ? not always physical

Often when I have a 10046 trace file, especially when looking at I/O issues, I want a histogram of I/O response time.  To get I/O response time I’ve hacked out incomple awk scripts from time to time, (more...)

You’re Cleverer Than You Think

I often train experienced developers in new tools, and I’ve found that most underestimate what they can do – their actual skill level is higher than their own perceived skill level.

Skill development

This is different from new developers, who tend to overestimate their skills.

The reason this happens to most experienced people is the “loss of control” feeling overcomes the feeling of accomplishment. If you are very skilled with one tool, you are acutely aware that (more...)

Share your interesting SQL or PL/SQL experience on stage, on camera, or in print

If you have had interesting experiences with SQL or PL/SQL in your career, here’s your opportunity to share them on stage, on camera, or in print. Send your stories to and we’ll forward them to the SQL evangelists team headed up by Steven Feuerstein. You may be selected to tell your stories on stage at the YesSQL! presentation at the winter conference next Tuesday or your stories may be recorded on camera or (more...)

Hardware is Cheap, Developers are Expensive

When advising customers on ADF projects, I often find development environments where many or all developers are working against the same database. That introduces a hard dependency between different parts of the project – if one developer deploys a defective PL/SQL package to the database, nobody else can run the application.

This approach made sense back when hardware was expensive and databases had to be managed by high priests in glass-walled, climate-controlled rooms. Today, you (more...)

Moving from Procedural to Set-Based Thinking

Most people who are new to working with databases tend to think procedurally. That is: I have a table that I need to update, so:

  • Find the first row
  • Update the relevant columns with the relevant values
  • Find the next row
  • Update the relevant columns with the relevant values
  • Find the last row
  • Update the relevant columns with the relevant values

People who are familiar with databases and set-based thinking would simply do:

Oracle Node.js Database Driver

I’ve been eagerly awaiting the first release of the Official Oracle Node.js Driver and Christopher Jones (@ghrd) just tweeted this –


So I hopped over to the Github repository to take a look and try it out…

…I’m very impressed so far…

Back in 2014, I presented at KScope on “Oracle APEX + Node.JS – A Primer” where I showed many demos on just how you can integrate Node.JS (more...)

Disruptive Innovations



photo by Tsahi Levent-Levi

by Iggy Fernandez

excerpted from The Twelve Days of NoSQL (

NoSQL and Big Data are “disruptive innovations” in the sense used by Harvard professor Clayton M. Christensen. In The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail, Christensen defines disruptive innovations and explains how they eventually lead to the failure of the established players who ignored them:

“Generally, disruptive innovations were technologically (more...)

Do You Know It All?

Last week’s Technology That Fits newsletter (sign up here) stimulated some interesting discussions. I showed the following graphic:

Doomed Projects

Everybody agreed that projects that choose good tools for good reasons are good, and projects that choose bad tools for bad reasons are bad. But some disagreed on Learning and Lucky categories above.

I call projects that choose good tools for bad reasons “lucky”. They are CMMI level 1 – sometimes they succeed, sometimes they fail, and they (more...)

Simplicity Is Good!

by James Morle

This article is about the importance of appropriately simplistic architectures. I frequently get involved with the creation of full-stack architectures—in particular the architecture of the database platform. There are some golden rules when designing such systems, but one of the most important ones is to keep the design as simple as possible. This isn’t a performance enhancement; this is an availability enhancement. Complexity, after all, is the enemy of availability.

Despite it (more...)

Interview with Tim Gorman: How I accidentally dropped the 16TB main index

Tim Gorman is a technical consultant for Delphix (, who enable database and storage virtualization to increase the agility of IT development and testing operations. He has co-authored six books, tech-reviewed eight more, and written articles for RMOUG SQL_Update and IOUG SELECT magazines. He has been an Oracle ACE since 2007, an Oracle ACE Director since 2012, a member of the Oak Table Network since 2002, and has presented at Oracle (more...)

You’re Not Here to Write Code

Too many programmers think that their job is to write code. It isn’t.

The job of the programmer is to help the business solve a problem using appropriate technology for the task at hand. The programmer knows (or should know) the available tools and will hopefully select the right one for the task.

Unfortunately, too many programmers suffer from framework-phobia and don’t trust any code they have not written themselves. That takes more time, causes more (more...)

delete argument too long linux

When you’re trying to delete files in linux , you receive following error message

bash: /bin/rm: Argument list too long

Solution :

go to that directory and execute below command

find . -name ‘filename*’ -print0 | xargs  -0 rm

Error while apply hrglobal driver

You can follow datainstaller and hrglobal apply process from here

Possibile error:

Error 1:

sqlplus -s APPS/***** @/u01/EBSUAT/apps/apps_st/appl/per/12.0.0/patch/115/sql/hrrbdeib.sql 2 4
ERROR at line 1:
ORA-04091: table HR.FF_USER_ENTITIES is mutating, trigger/function may not see
ORA-06512: at “APPS.FFDICT”, line 1224
ORA-06512: at “APPS.FFDICT”, line 1901
ORA-06512: at “APPS.FF_USER_ENTITIES_BRI”, line 7
ORA-04088: error during execution of trigger ‘APPS.FF_USER_ENTITIES_BRI’
ORA-06512: at “APPS.HRDYNDBI”, line 5446
ORA-06512: at (more...)