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)
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.
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.
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.