I keep finding myself referring back to this Ask Tom post about perfomance differences between EXISTS and INagain and again.
This Ask Tom post explains performance differences between nvl() and decode() for null values. In short, decode() will shortcircuit thereby making it much faster if your replacement expression in nvl() is expensive.
My relational database experience is primarily in SQL Server, and when developing applications using PL/SQL stored procedures in Oracle I keep wanting to be able to write errors to the equivalent of the Application Log of the Windows Event Log. Until recently, I have just been publishing errors to a table I set up in [...]
Cleaning Up PL/SQL Practices by Steven Feuerstein as published in Oracle Magazine March/April 2004.