PL/SQL Compiler Error - Where are the errors?

For the life of me, I cannot find the output that actually SHOWS the error with the line number/column.

I can compile in SQLPlus and do show errors to find it, but that doesn't seem to be a great solution.

I've been trying to figure this out all morning but can't find it. I can do a right click, and "Jump to first error" but it doesn't tell me what the error is, just the line.

Also, I can describe the offending package and goto ERRORS but it looks like it truncates a lot of the info in the error.

Toad used to have an output window at the bottom that would show the compiler messages - where did it go, or how do I turn it on?

I have "Errors" at the bottom and Script Output. Script Output is empty and Errors says: "Execution (1: 1) Ora-24344: success with compilation error" - Gahhh.

A little help? (I've attached a simple package error to show what I'm looking at)

Don’t use F5/Execute as Script.

Use F9 to compile your package. Then you’ll get the Errors Panel in the
editor, where you can click into each error and have the line/curpos
highlighted.

Heh…

Apparently CNTRL-ENTER (execute SNIPPET) behaves like Execute as Script as well. I was using CNTRL-ENTER.

Grrr. That’s going to take some getting used to.

I know from hearing Mike mention this about a dozen times, there are some
differences between Ctrl-Enter and F9, but didn’t know this was one of
them.

You could always map CTRL+ENTER to do what F9 does, or quit coding so many
errors?

One thing to note in this instance is that Ctrl+Enter compiles PL/SQL and
executes SQL in the exact same way. It will clear the grid. It will not evaluate
ORA errors in depth and return meaningful messages for your PL/SQL. It will not
compile objects using the debug option or any of the other PL/SQL specific
compile options. It will not update an internal cache used to store information
about known objects which aids in speeding up other Toad features. It will not
update the Editor so that it knows which object is loaded in a particular tab
which can affect other PL/SQL specific actions. There are many differences in
F9/CTRL+Enter. F9 is the better route.

Michael

You had me at

F9 is the better route

or quit coding so many errors?

Now there’s a thought… the problem with the thought is that we
receive a bonus for each bug we fix.

Just kidding, a small tribute to Scott Adams.

Roger S.

Compiler errors happen! The following approach should help you get through them with a minimum of fuss and frustration when they do occur.
Avoid them! How? By knowing what you are doing before you do it. Take good notes, keep your source organized so you can find it and refer to it to see how you did something successfully before. Make a cheat sheet of things you do often but can't quite remember yet.
Don't write very much code! Well, not all at once anyway. Develop incrementally. Write a little, compile, test (if appropriate), repeat until done. By writing a small amount of code at a time you know any compiler errors you encounter were introduced recently - if you didn't write very much you'll have a better idea where to focus your attention.

ALWAYS ALWAYS ALWAYS fix the first compiler error first (by this I mean the one the compiler spit out first). The first error is almost always a real error. Subsequent errors can simply be the result of the compiler being confused by the first error. It makes an attempt to tell you everything that is wrong but it is not very good at it. As you become more experienced with compiler errors you can dive down the list, ignoring the appropriate ones, and fixing the valid ones. Until then, and especially when you feel dazed, confused, angry, frustrated (fill in your favorite compiler-error emotion here), et cetera, you should fix the first error first, if the second error makes little or no sense, just compile and fix the new first compiler error, if any, repeat until done.

If you can't figure the error out, try commenting out the code you have most recently written until it goes away. Then, reintroduce the commented out code, a bit at a time, until the error reappears. Make sure you understand what specific code caused the error and commit it to memory so that you can avoid that error in the future. This is called learning from experience - very important to a programmer's sanity and success! Maybe everyone's sanity and success for that matter.

Take regular breaks. Especially when you are feeling stuck and frustrated. You'll be amazed how much more fun programming can be if you approach it as an interesting challenge when you are feeling fresh. I, and many others I know, have solved many-a-problem by simple moving away from the computer. Some unconscious part of your mind continues to puzzle over the problem and often solves it for you with little or no apparent effort at all.

Regards,
Rachel Gomez

1 Like