Category Archives: PL/SQL

Drop if exists…

When creating an update script for the database the DBA always nag me about objects to be dropped that don’t exist. My view is that the end result is the same, you are dropping an objects to remove it, so in the end it’s gone. If it’s not there in the first place, then it’s […]

Read more

OPP is coming to Atlanta

I have been invited to deliver two talks on performance at the OPP conference, November 10th and 11th in Atlanta. The topics I will address are Pipelined Table Functions and Optimizing SQL with Collections. I will be among some of the best experts in the PL/SQL world, including Steven Feuerstein, Bryn Llewellyn and many others. […]

Read more

Database Event Triggers

Currently I am working on an application that runs one or more listener threads using scheduled tasks (DBMS_SCHEDULER). When I want to compile a piece of code that is effectively locked by one of these processes my IDE locks up, until I shut down the tasks. The first couple of times I was wondering what […]

Read more

File locking…

I am building a file upload package (or actually it has been built and I am expanding it). The file should be uploaded by a third party and when it’s done, then this code should kick off and upload the file to a clob for further processing. The problem is that the third party can […]

Read more

Semaphores (revisited)

In a previous blog I talked about turning triggers on and off using semaphores. I created a semaphore for every table I needed along with its programs to set and unset the semaphore and to get its current state. This was a rather cumbersome process, because for every new trigger I needed to add these […]

Read more

Template plug-in…

A while ago I created a plug-in for PL/SQL developer that allowed me to type in a short code, press a magic key and have the short code replaced by the contents of my template. For instance, I type put, press CTRL-J and the code I typed in gets replaced by dbms_output.put_line();. That’s a lot […]

Read more

Overloading and parameters

When you call a procedure or function in PL/SQL you basically have two options for the parameters. By name or by position. If you use the by name version, then every parameter is named. You don’t have to conform to the order of the parameters because Oracle will automatically put the value in the right […]

Read more

Bulk Operations in PL/SQL

When I was in Chicago for the OPP2008 and APEXposed event I talked to someone who seems to have trouble understanding bulk operations in PL/SQL. I helped him out by providing a test/demo script, that shows how it could be done. First of all, one of the most important rules of thumb that I got […]

Read more