Let’s take a look at some code we want to debug
type emp_rt is record
type emp_tt is table of emp_rt
index by pls_integer;
First we declare a Record, based on some of the columns of the infamous EMP table. Next we declare the Associative Array based on the Record structure.
Then we need a (packaged) procedure, which we are going to debug. The type declaration and the procedure are both in a Package, of course.
idx := emps.first;
while idx is not null
dbms_output.put_line ('Employee: '||emps(idx).ename);
idx := emps.next(idx);
PL/SQL Developer has a Test Window, where you can run an anonymous block. It is possible to call this window whenever you feel like, no need to be in the context of a Package like in SQL Developer. Nor does the package need a breakpoint. And this is a good thing, 'cause most of time I forget to set breakpoints.
When you are stepping through the code and you want to see the content of the Associative Array, you will get the message:
And that's too bad.
SQL Developer to the Rescue
SQL Developer, Oracle's free IDE, also has a Debugger. And what is really nice about this debugger, is that you can view the content of the Associative Array.
- Set a Breakpoint in the procedure (this can only be done when you are in edit mode)
- Compile the Package in Debug (with the black compile button
- Choose Run --> Debug from the menu
- Run the procedure from the Debug window
- Execution halts at the Breakpoint
Simply Brilliant! Great Job, Sue!