Minimize
Blogger List

Johannes Ahrends
Toad and Oracle

Ben Boise
Toad SC Discussions

Kevin Dalton
Benchmark Factory

Steven Feuerstein
PL/SQL Obsession

Devin Gallagher
Toad SC discussions

Stuart Hodgins
JProbe Discussions

  Henrik "Mauritz" Johnson
Toad Tips & Tricks on the "other" Toads
  Mark Kurtz
Toad SC discussions
  Michael Lumbard
Toad SC discussions
Daniel Norwood
Toad for Data Analysts,
Toad Extension for Visual Studio
Debbie Peabody
Toad for Data Analysts
Gary Piper
Toad Reports Manager
John Pocknell
Toad for Oracle, JProbe
Kuljit Sangha
Toad SC discussions
Bert Scalzo Indicates Oracle ACE status
Toad for Oracle, Data Modeling, Benchmarking
Jeff Smith
Toad product family
Richard To
SQL Optimization
Jim Wankowski
DB2 - LUW and z/OS
John Weathington
  Toad Data Modeler Opens in a new window
Data Modeling
 
  Real Automated Code Testing for Oracle
Quest Code Tester blog
 
Minimize
Blog Tags
toad for oracle (122)
oracle (62)
plsql (46)
sql optimization (37)
toad for data analysts (28)
code tester (19)
toad for ibm db2 (13)
automation (11)
batch optimizer (10)
virtualization (10)
schema browser (9)
toad for sql server (9)
data grid (8)
sql (8)
sql editor (8)
toad data modeler (8)
benchmark factory (7)
excel (7)
query builder (7)
report manager (7)
toad extension (7)
visual studio (7)
11g (6)
configuration (6)
freeware (6)
health check (6)
vmware (6)
connect (5)
dba module (5)
er diagrammer (5)
F4 (5)
linux (5)
refactoring (5)
spotlight (5)
unicode (5)
compare (4)
debugger (4)
export (4)
formatter (4)
make code (4)
rman (4)
strip code (4)
benchmark (3)
bfscript (3)
bulk collect (3)
code templates (3)
code xpert (3)
database browser (3)
db2 (3)
notebook (3)
oem (3)
RAC (3)
session browser (3)
speed (3)
sql optimizer (3)
toad for mysql (3)
tpc-c (3)
9.7 (2)
alert log (2)
app designer (2)
awr (2)
code insight (2)
code snippets (2)
collection (2)
compare and sync (2)
compliance (2)
data generator (2)
data warehouse (2)
database explorer (2)
database monitor (2)
explain (2)
forall (2)
ftp (2)
group execute (2)
handbook (2)
installation (2)
job scheduler (2)
multi-task (2)
nested table (2)
os command (2)
profiler (2)
recovery (2)
release history (2)
save as (2)
schema compare (2)
sql recall (2)
stats pack (2)
subversion (2)
team coding (2)
trace file browser (2)
while loop (2)
10g (1)
64 bit (1)
7zip (1)
action (1)
addm (1)
alter (1)
ansi join (1)
array (1)
ccleaner (1)
code coverage (1)
code road map (1)
CRON (1)
cursor for loop (1)
data browser (1)
data subset (1)
database probe (1)
dbms_flashback (1)
dbms_profiler (1)
ddl (1)
feuerstein (1)
filezilla (1)
flash drive (1)
flow control (1)
for loop (1)
group policy manager (1)
hints (1)
import (1)
index (1)
inheritance (1)
invoker rights (1)
ipad (1)
java (1)
latency (1)
log switch (1)
logical model (1)
ltrim (1)
master-detail browser (1)
monitor (1)
multi-select (1)
naming standards (1)
network (1)
object explorer (1)
OEBS (1)
package (1)
parser (1)
partitioning (1)
performance (1)
pragma (1)
project manager (1)
RAT (1)
revo (1)
REXEC (1)
schema report (1)
script manager (1)
search (1)
set operator (1)
sga (1)
slow (1)
sonarsource (1)
source control (1)
space projection (1)
sql monitor (1)
sql navigator (1)
sql script (1)
sql tracker (1)
sql*plus (1)
standards (1)
statistics (1)
stored procedure (1)
string parser (1)
sub-model (1)
sub-type (1)
synch (1)
synchback (1)
TELNET (1)
toad (1)
trace (1)
unit test (1)
unix (1)
usb (1)
utility (1)
v10 (1)
v9.5 (1)
version control (1)
waits (1)
workload replay (1)
workspace (1)
xml (1)
 
WELCOME, GUEST
 
 

Blogs
Toad and Database Commentaries

Toad World blogs are a mix of insightful how-tos from Quest experts as well as their commentary on experiences with new database technologies.  Have some views of your own to share?  Post your comments!  Note:  Comments are restricted to registered Toad World users.

Do you have a topic that you'd like discussed?  We'd love to hear from you.  Send us your idea for a blog topic.


Author: StevenFeuersteinTW Created: Thursday, October 26, 2006 10:47 AM RssIcon
Steven Feuerstein is considered one of the world's leading experts on the Oracle PL/SQL language, having written ten books on PL/SQL (all published by O'Reilly Media, including Oracle PL/SQL Programming. Steven has been developing software since 1980, spent five years with Oracle (1987-1992) and has served as PL/SQL Evangelist for Quest Software since January 2001. He is also an Oracle ACE Director. He writes regularly for Oracle Magazine, which named him the PL/SQL Developer of the Year in both 2002 and 2006.

 Steven's blog provides advice and code that you can put to immediate use in your world of programming. 

Recent postings on his PL/SQL Obsession:

By StevenFeuersteinTW (User) on Wednesday, November 28, 2007 1:24 PM
Would you like to increase productivity, improve code quality, and ensure that standards are being followed? Of course you would! And one of the best ways to do that is to rely heavily on Toad's Code Templates (similar functionality exists in SQL Navigator as well).

Code Templates are chunks of code that you can assign a name and description. You then use the name to quickly copy the associated code into your editor....
By StevenFeuersteinTW (User) on Sunday, November 11, 2007 11:13 AM
Sorry about the late posting, but if you are interested in attending my presentations, here's the info: Session ID: S290723 Session Title: Break Your Addiction to SQL! Track: Database Room: Grand Ballroom A Date: 2007-11-12 Start Time: 12:30

Session ID: S290725 Session Title: Collect Yourself: Optimize PL/SQL Code with Collections Track: Database Room: Yosemite Room B Date: 2007-11-12 Start Time:...
By StevenFeuersteinTW (User) on Thursday, October 18, 2007 8:50 AM
All files referenced in document available from: www.oracleplsqlprogramming.com/downloads/demo.zip.

Introduction

Very, very few of us write perfect programs the first time, or the second time, or…. You get the idea. Our code is never perfect and can always be improved. Martin Fowler developed a technique he calls "refactoring," and it has become quite popular in the world of Java. Here is Mr. Fowler's description of refactoring:

...
By StevenFeuersteinTW (User) on Wednesday, September 26, 2007 10:23 AM
Use templates to accelerate high quality coding. When you open a new edit window in Toad, it looks like this:



Well, of course it does....it's an empty, new edit widow!

That's fine, but suppose I now need to create a new package for my application. Sadly, what many of us do is start typing:



...
By StevenFeuersteinTW (User) on Thursday, September 20, 2007 10:37 AM
What's the point? This utility will make it easy for you to read in the contents of DDL statements (like CREATE OR REPLACE PACKAGE) and execute them within Oracle.

Show me the code! It's not a terribly long program, so I will include it right in this posting:

CREATE OR REPLACE PROCEDURE exec_ddl_from_file (

   dir_in IN VARCHAR2

 , file_in IN VARCHAR2

)

AUTHID CURRENT_USER

...
By StevenFeuersteinTW (User) on Friday, September 14, 2007 11:08 AM
I get this question a lot. I am teaching a class and a student asks: "When did Oracle add autonomous transactions?" Or the INDICES of clause. Or – who knows what? Seeing as I am totally obsessed with PL/SQL, I usually actually remember the answer to such questions.

Occasionally, however, I do not. And of course I cannot always be there for you to answer such a question when you have it.

So I thought I would pass along a tip – a way to quickly determine the version in which a feature was introduced to Oracle.

...
By StevenFeuersteinTW (User) on Wednesday, August 29, 2007 12:42 PM
I don't know about you, but I sometimes write code that (inadvertently, not on purpose) contains an infinite loop. So I run my program and Toad goes off into never-never land, with Oracle chewing up CPU cycles so intently that it is hard to connect as SYS and kill the session.

I hate that, don't you?

Now, there are two ways to address this problem:

1.       Don't write code that contains infinite loops....
By StevenFeuersteinTW (User) on Wednesday, August 22, 2007 7:41 AM
Kudos to Alex Nuijten for bringing this gem to light, he wrote in his latest AMIS blog entry that:

"If you are a regular user of the FORALL statement, you are probably also familiar with this message:

PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND table of records

While I was playing around on...
By StevenFeuersteinTW (User) on Friday, August 17, 2007 9:27 AM
You will find in this Quseful a package that will generate/return collections of random values of strings, numbers and dates. It also contains a "self-test" random_verifier procedure that you can run to verify "at a glance" that the values being generated seem random. As a bonus, I include the pick_winners_randomly procedure, which I use in my seminars to pick the winners in raffles for my books and other goodies. I wrote...
By StevenFeuersteinTW (User) on Monday, August 06, 2007 2:01 PM
I offer in this Quseful (Quick and Useful) a package that you can use to determine if a string contains a valid integer, number, binary_float or binary_double (note: if you are not running Oracle 10g, you will need to comment out the binary_* versions in this package). It is based on code I wrote about back in 1997 (available here, along with the article...
By StevenFeuersteinTW (User) on Wednesday, July 11, 2007 11:04 AM
I offer in this Quseful (Quick and Useful) a package that you can use to dynamically retrieve the value of almost any column from any table. I created this package as a "helper" utility for Quest® Code Tester users. Here's the problem that I was solving with this package:

We added support for automated testing of XML documents in Quest Code Tester 1.6, which will be released in a month or so (a very solid beta is...
By StevenFeuersteinTW (User) on Friday, June 22, 2007 11:19 AM
That's me. A hypocritical programmer. And I am here to admit it, to make a confession. Hypocrisy has got to be one of the most infuriating traits of human beings.

Definition:

"A pretense of having a virtuous character, moral or religious beliefs or principles, etc., that one does not really possess." http://dictionary.reference.com/browse/hypocrisy

...
By StevenFeuersteinTW (User) on Tuesday, June 05, 2007 6:16 AM
Qusefuls #1 and #2 were published on Steven Feuerstein's personal blog at feuerthoughts.blogspot.com.

About Qusefuls A Quseful is a Quick and Useful (as opposed to Quick and Dirty) tip on now to write programs in the Oracle PL/SQL language more effectively. I originally published Qusefuls on my blog (feuerthoughts.blogspot.com), but am now switching the "home" for Qusefuls to my ToadWorld blog. Each Quseful contains...
By StevenFeuersteinTW (User) on Wednesday, May 09, 2007 11:24 AM
It is Wednesday, May 09, 2007 and I am sitting in the Admiral's Club at the Buenos Aires airport. I just finished two days in this lovely city. My first day was spent enjoying the chilly, but very sunny afternoon, walking for four hours around the city. It is a busy, busy place with many buses throwing way too much gritty exhaust into the air (hey, but they are Mercedes Benz buses! I think that Americans would be generally...
By StevenFeuersteinTW (User) on Thursday, April 19, 2007 9:16 AM
I am visiting this, well, very artificial paradise dropped into the middle of a desert, so as to participate in Collaborate 07. It's been an interesting and fun several days. I have a room on the 26th floor of the Mandalay Bay hotel, so I have a fantastic view looking out over the wave pool, lazy river and assorted pools between the hotel and the convention center. Better yet, I can see mountains right there on the horizon....
By StevenFeuersteinTW (User) on Thursday, March 29, 2007 9:37 AM
I rediscovered the joy of writing to myself a week ago, and I also was reminded of the danger of coding in isolation (that is, working by oneself).

I recently tangled with my implementation of column set management in Quest Code Tester.

"Column set management," you wonder, "what's that?"

In this amazing, automated code testing tool for PL/SQL, you can at a high level describe the tests you want Quest...
By StevenFeuersteinTW (User) on Wednesday, March 14, 2007 9:54 AM
Some musings about the life of a programmer.... Two weeks ago, we held the second annual Oracle PL/SQL Programming conference (I talked about it in last week's blog on the Test-A-Thon). I gave the keynote speech on the first day. It was titled "Wake up and smell the methodologies". Generally, I urged PL/SQL programmers to take a look at the various methodologies out there, such as Extreme Programming, Structured Programming...
By StevenFeuersteinTW (User) on Wednesday, March 07, 2007 11:46 AM
A couple months ago as ODTUG was working out the final details for the Oracle PL/SQL Programming 2007 conference I came up with an idea for a Test-A-Thon: Contestants are handed a set of programs, and test cases for each of the programs. They must then (in the next hour) build test scripts for those programs that automatically verify whether or not the program works. Whoever gets furthest in building the test scripts...
By StevenFeuersteinTW (User) on Friday, February 23, 2007 5:16 PM
Test your code! Debug your code! Trace your code! We all hear about how we should or at least could perform these activities with our programs. And all too often the terms and usages seem to blur, and be confused. In reality, these three activities – test, debug, trace – are all quite different in nature and serve different purposes.

This blog entry offers my perspective on how they differ. I hope you find it useful...
By StevenFeuersteinTW (User) on Wednesday, February 14, 2007 2:09 PM
The Major Enhancements in the 1.5 Release

Of course, we spent lots of time just fixing bugs and making lots of small changes. But there were some very critical "big ticket" enhancements that were requested by users and prioritized for the commercial release.



The ToadWorld preview release, Quest Code Tester for Oracle 1.2.5.5,  offered a Test Builder that is very powerful, but it is also a bit quirky and...
By StevenFeuersteinTW (User) on Wednesday, February 07, 2007 11:26 AM
As I write these very words, we are preparing to release the commercial release of Quest Code Tester for Oracle 1.5. I hope that you have already heard about this new testing tool. If not, I offer a quick intro/overview below.

I hope that you have already downloaded the special preview release (1.2.5.5) we made available at Oracle Open World in October 2006. If not, no problem....just wait a little bit and then download...
By StevenFeuersteinTW (User) on Wednesday, January 31, 2007 12:07 PM
I recently spent two days training a group of about 30 developers and DBAs out east. As with any sizeable collection of technologists, the level of expertise and the years of experience varied greatly (and don't always go hand in hand!).

I was pleased to see that everyone seemed to get along well, there wasn't any great reluctance to ask questions (that is, admit ignorance), and several attendees didn't hesitate to challenge my ideas and suggest other ways of doing things. Just the way I like it!

...
By StevenFeuersteinTW (User) on Wednesday, January 24, 2007 8:51 PM


 

Now, for sure, we need really good tools to help get the job done, but we also need to think about the workflow we follow to write our code.  You will find my latest ideas about that below. From a methodological standpoint, it draws heavily on Test Driven Development.

I will be building out these ideas further throughout 2007, and also we are looking at ways at incorporating these ideas directly into...
By StevenFeuersteinTW (User) on Tuesday, December 19, 2006 3:47 PM
I thought I would take a moment out of my busy Quest Code Tester development efforts (that is, heads-down coding, writing specifications, working with developers in Chicago, Columbus, St. Louis and Russia) to give thanks to Toad.

 

"Way back" in October (that's the way it feels, already), Quest released Toad 9. My initial reaction, probably like many other Toad users (and I do feel like I am quite the typical...
By StevenFeuersteinTW (User) on Monday, December 04, 2006 10:30 PM
You probably don't give this a second thought, but sometimes the question rears its ugly and bewildering head in the code you are writing – precisely because Oracle itself provides multiple answers to the question, right from inside its own code base. Let's take a closer look.

 

When NO_DATA_FOUND is raised, the error message is:

 

ORA-1403: no data found

 

So...is that character between...
By StevenFeuersteinTW (User) on Thursday, November 09, 2006 11:55 AM
When an exception is raised, one of the most important pieces of information a programmer would love to get hold of is the line of code that caused the exception to be raised.  Before Oracle 10g came long, the only way to get this information was to allow the exception to go unhandled and then view the error stack. The following chain of program calls shows you what I mean.

CREATE OR REPLACE PROCEDURE my_procedure_1...
By StevenFeuersteinTW (User) on Thursday, November 02, 2006 11:28 AM
All those big brain technoids always make such a big deal out of testing. Too many bugs in our software! Bugs cost money! Bugs make us look bad! Test your code before you give it to your users! Test your code before you write your code! Test your code before you learn how to write code! C'mon, I say, give us a break!

Here's the way I look at it: we could bust our buttons working extra special hard to get rid of lots...
By StevenFeuersteinTW (User) on Monday, October 30, 2006 4:58 PM
Welcome to my Toad World blog! I will offer on this blog a wide variety of tips and incredibly deep and surprising insights on the Oracle PL/SQL language (the object of my obsessive personality for the last 10+ years).  I look forward to your responses and critiques. That is: I hope you will engage with these ideas and feel perfectly comfortable with disagreeing with me, offering other, perhaps better, ideas, and in general...
Search Blog Entries