I had an interesting request recently from a developer.
“ I have a table created as per below
create table C_TEST (
The rows defined by col_1, col_2, col_3 must be unique but only when col_3 is present. If col_3 is not present, then we allow anything. Hence if the table is populated like this:
I was reading the following post today http://stevenfeuersteinonplsql.blogspot.com.au/2015/06/the-oracle-database-developer-choice.html
Oracle are planning on rewarding developers in the following areas:
At first glance I had a bit of a cynical view…it could easily be one of those things where if you come from a company that has massive investment in Oracle, then surprise surprise you float to the top of the heap.
But this part of the post caught my eye:
I remember on a flight to the UKOUG, I was doing what all presenters typically do on a plane. They enter the cabin with the thought of "OK, I’ll spend most of the flight getting those slides just right". Then…a set of broadcast advertisements, safety messages, hot face towels, exit row briefings, beverage services, coffee services, and before you know it you’ve burned 2 hours without touching the laptop…and then the meal service starts :-)
Anyway, I digress. I eventually got the laptop fired up and started flicking through my slides for the 800th time – I suffer from that silliness where if I’m thinking "Hmmm, if replace with ‘database’ with ’12c database’", then this somehow will make a significant improvement for the attendees. After a while the laptop gives me a little ‘beep’ telling me that battery is low.
People ask me from time to time what are some good SQL tuning books. It’s a tough question to answer. There are some seminal books such as “SQL Tuning” by Dan Tow and “Cost Based Optimizer Fundamentals” by Jonathan Lewis, but these are advanced books that few I know have actually read from cover to cover. If you are looking for practical SQL tuning cookbooks you might want something a little less advanced. For a practical approach, I love “Refactoring SQL Applications” by #111111;"> Stephane Faroult which is an easy read, again, it’s not a straight forward SQL tuning book.
If you take a look at the "alter user" command in the old 9i documentation, you’ll see this:
DEFAULT ROLE Clause
Specify the roles granted by default to the user at logon. This clause can contain only roles that have been granted directly to the user with a
GRANT statement. You cannot use the
ROLE clause to enable:
Oracle enables default roles at logon without requiring the user to specify their passwords.
My mate Scott Wesley, whose specialty is Apex, is currently at Kscope having the time of his life (well, I hope so ). He tweeted this picture last night of his conference badge, mainly about the “I love Apex” buttons, but something else struck me.
I’m at the ODTUG Kscope conference in Hollywood Florida and was just talking with some Oracle folks about Open Source (yes, Oracle has people devoted to working with Open Source tools) and I shared with them my general comments to students and colleagues about Open Source.
There are two kinds of free:
1. Here’s a free cup of coffee (or beer or soda…)
2. Here’s a free puppy
When accepting option 1 (free coffee) you take it, consume it, and enjoy.
When accepting option 2 (free puppy) you take it, you find a place for it to sleep, you take it to the vet, you walk the puppy, you feed the puppy, and oh-yeah — every once in a while the puppy might make a mess on your floor! You’ve made a commitment.
(I cannot take credit for the metaphor; I first heard it used by friend and colleague Jim Cody of Cardinal Directions – thanks Jim!)
Clearly, “free” is not always “completely free”
After the last 16 years in the contracting and consulting world, for dozens of clients in Australia and other countries around the world, its time for a change of direction. Whilst doing work with Oracle systems has always been (and continues to be) rewarding, I realised that a lot of the motivation for being at client sites was the sharing of information with developers and DBA’s at those clients so they could get the most out of their Oracle investment. Similarly, its really cool to speak at conferences to let people explore the Oracle technology in perhaps way they had not thought of, and similarly, blogging about features and idiosyncracies that we stumble upon. Whatever the medium (and even whatever the technology, whether it be Oracle or otherwise), the concept of an “IT community”, ie, people being keen to share, debate, and discuss has always been one of the things I like about my profession.
For almost as long as I can remember, the optimizer has had a nifty little trick when you (in effect) try to combine two different usage models within a single SQL. To explain that, I’m referring to the common scenario of: "If a bind value is provided by the caller, then use it, otherwise it shouldn’t limit the result set. So we commonly see queries like:
where COL1 = NVL(:mybindvar, COL1)
[For ease of discussion, we’ll assume COL1 is not nullable]
Anyway, the nice little optimizer trick was to optimize the query to handle the two separate use cases, so you see a CONCATENATION step in the execution plan, and two FILTER’s, one to handle the case when the bind variable is null, and one to handle the case where it is provided.