Just received this feedback on an Oracle Magazine article:
I’ve just started using DBMS_UTILITY.FORMAT_ERROR_BACKTRACE and it’s a great utility when the code contains no comments, but unless I’m missing something it’s not terribly useful with regard to pinpointing the exact line number when the code contains comments.Now, I must confess that I am tempted to respond with such questions along these lines:
Did you try it out? That's the best way to learn!But I am always looking for another reason to post on my blog and add to the LiveSQL repository. So that's what I am doing! :-)
The answer is quite straightforward:
Comments do not interfere with "pinpointing the exact line number" on which the error was raised.
But I bet you want proof, so let's get down to business.
I create a procedure with comments and a RAISE statement:
CREATE OR REPLACE PROCEDURE comments_throw_off_line# IS /* Here's my header Blah blah blah */ BEGIN DBMS_OUTPUT.put_line ('wow!'); /* And here's another comment because I really love to fill my code with meaningless comments! */ RAISE PROGRAM_ERROR; /* This is line 14 */ EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (DBMS_UTILITY.format_error_backtrace); END;
I run the procedure and see this output:
BEGIN comments_throw_off_line#; END; wow! ORA-06512: at "COMMENTS_THROW_OFF_LINE#", line 14
So, there's your answer.
Next question? :-)