Top 60 Oracle Blogs

Recent comments

June 2015

Cross-platform database migration

Last weekend, we faced one of the larger challenges that we’ve faced in my time at my current client.  Migrate multiple database systems, across multiples sites, all to new hardware (with new endian format), new database version (…and of course, try to do it with as small a disruption to the service as possible.

We are not a Goldengate customer, so pursuing a zero-downtime migration was not considered, and to be honest, even we had such facilities at our disposal, I think we would still have taken a small outage just to allow a "quiet time" to do verification checks etc.

Friday Philosophy – Flippin’ Technology

Sometimes I think I would have been a Luddite or a member of other groups who have trashed new technology in frustration. Some days, I can just scream at it. You would think having worked in Information Technology for so long would make me more of a fan, but it actually makes me worse – as I know there is no need for there to be so much wrong with the electronic dross we all have to deal with day-to-day. And if I, someone who has used (heck, even programmed) computers for 3 decades, have trouble with these damned things, how frustrating must “normal” people find it?

Docker on Oracle Linux

As a reminder for myself and for those who might have missed the info. Here…

Oracle Documentation URLs : What I would like to see!

Broken-LinkAfter my recent rant about broken URLs, I thought it would be sensible to say something a little more constructive, so this is what I would do if I were asked to structure the documentation. Other opinions are valid. :)

Base URL: I’m assuming the base URL for the database documentation will never change again from it’s current value.

Predicate Order

A recent OTN post demonstrated a very important point about looking at execution plans – especially when you don’t use the right data types. The question was:

We’ve this query which throws invalid number

WHERE A.corporate_id IN (59375,54387) AND TRUNC(created_dt) BETWEEN '19-DEC-14' AND '25-DEC-14';

However it works fine if we use not in instead of in

SELECT * FROM table A  
WHERE A.corporate_id  NOT IN (59375,54387) AND TRUNC(created_dt) BETWEEN '19-DEC-14' AND '25-DEC-14';

Please assist.

Databases Running in the Cloud

cloudI’ve been playing around with running databases in the cloud recently. It’s quite simplistic stuff, just to get a feel for it and investigate the possibilities of using it for some projects at work. Here’s what I’ve got so far.

OT: Update on the Fourth International NoCOUG SQL Challenge (Part III)

Update on the Fourth International NoCOUG SQL Challenge in progress at .
Chris Goerg submitted the following MODEL-clause solution. The use of two measures (named cd and cm) is the key. Both measures are initialized with zero values. The rules change the values of the measures. Cheryl's birthday is the date for which cd = 1 and cm = 1.

with d as (
select unique
extract(month from dateofbirth...(read more)

OT: Update on the Fourth International NoCOUG SQL Challenge (Part II)

Update on the Fourth International NoCOUG SQL Challenge in progress at .
The NoCOUG challenge does not come with a fixed data set such as the 10 dates in the Cheryl’s Birthday problem. Instead contestants are required to solve the problem for all data sets that fit the story.


Perhaps because of familiarity with the Cheryl’s...(read more)

OT: Update on the Fourth International NoCOUG SQL Challenge (Part I)

Update on the Fourth International NoCOUG SQL Challenge in progress at

The previous NoCOUG SQL challenges (First, Second, Third) were about devising clever algorithms and then trying to code them in a language (SQL) that was not designed for implementing algorithms. The fourth challenge is more about translating a functional specification into relational algebra or calculus  so it’s closer to what SQL is all about.