PL/SQL

Category

Database triggers. If you have spent any length of time within the Oracle development circle you might have noticed something strange: pretty much every expert – commentator, blogger, Oracle evangelist – has written an article condemning triggers. And every single time the comment section is flooded with developers/DBAs defending them. I recently joined the fray, writing an article warning against… Continue Reading →

All Things Oracle Full Articles, PL/SQL

Feeling brave?  Enjoy danger? Well, I dare you to walk into a room full of Oracle experts wearing an I ♥ DATABASE TRIGGERS t-shirt. Let’s see if you walk out of that room alive. Database triggers are the Oracle feature that developers love to hate, perhaps above every other.  And it’s pretty unanimous – from luminaries like Tom “Triggers are… Continue Reading →

Database Development, Oracle Database, PL/SQL

It is probably a bad idea to define a word by using a bigger one, but I really can’t introduce the concept of overloading without briefly mentioning polymorphism. Polymorphism, in computer programming, is the ability of an object to interface in different ways depending on other, external criteria. And if that isn’t exactly clear, don’t worry about it; just know… Continue Reading →

All Things Oracle Full Articles, Database Development, PL/SQL

So far in this series we’ve talked about interpreting the shape of an execution plan and understanding the meaning of the predictions that the optimizer has made about cost and cardinality. It’s finally time to see how Oracle gives us execution plans that show us how well the optimizer’s estimates match the actual work done as the query ran. There… Continue Reading →

All Things Oracle Full Articles, Database Administration, Database Development, PL/SQL

Sometimes the best way to see the familiar is to go far from it – Wisdom of the desert In previous articles (collections I and collections II) I described the different types of collections, their possibilities and their limits. One of the limits was the possibility to use an Associative Array in a SQL statement. If you are building your… Continue Reading →

12c, All Things Oracle Full Articles, Database Development, Oracle Database, PL/SQL

When we examine an execution plan, we’re usually trying to work out the mechanical steps that Oracle took to produce a result set. When we do this, it’s important to remember that the text that Oracle optimized wasn’t necessarily the same as the statement we originally wrote. Oracle may have transformed our statement before passing it through the optimization engine…. Continue Reading →

All Things Oracle Full Articles, Database Administration, PL/SQL

A wise man once said, insanity is doing the same thing over and over again but expecting different results. If that is the case then no one’s saner than a computer programmer*, because programming is executing the same code over and over again and expecting the same results. We’ve already talked about bundling up statements in anonymous PL/SQL blocks; now… Continue Reading →

All Things Oracle Full Articles, Database Development, PL/SQL

A wise man* once said, all software programming is about hoops and loops. You take some variables, give them hoops to jump through and, depending on their success or failure, you give them some actions to loop through a number of times. Might sound basic, but that’s what all software code – from Angry Birds to the space shuttle –… Continue Reading →

All Things Oracle Full Articles, Database Administration, PL/SQL

If you have to tackle performance problems in an Oracle database one of the most important skills you need to acquire is the ability to interpret execution plans, and in this series of articles I’ll be telling you how to do just that. We’ll start with a couple of articles that look at some of the ways we can access… Continue Reading →

All Things Oracle Full Articles, Database Administration, PL/SQL

Insanity: doing the same thing over and over again and expecting different results. – Albert Einstein In part 1 we looked at the result cache for PL/SQL Code We can also use this same technique when our function depends on tables (or views). Let’s create a simple table, add some data and a simple, slow function: CREATE OR REPLACE FUNCTION… Continue Reading →

11g, 12c, All Things Oracle Full Articles, Database Development, Oracle Database, PL/SQL