RE: raise_application_error and when others

From: Chuck Boddy <Chuck.Boddy_at_gettyimages.com>
Date: Wed, 30 Nov 2011 21:33:05 +0000
Message-ID: <03ED9A05921CD149B3984ABF3F59EE7A1E7940_at_SEAPXCH10MBX01.amer.gettywan.com>



That's what I initially thought too. So I checked the calling procedure, and what is logged to the error table is specific to the calling procedure. What is logged to the error table in this case, is only specific to that trigger(it writes the object name(the trigger) at the time the exception is hit. This does seem to be handled differently than what I would expect...

raise_application_error("sqlerrm populated","sqlcode populateted");(user defined)

drops down to When others exeception with user defined sqlerrm and sqlcode.

Am I right to expect that when others SHOULD NOT be hit?

Thanks,
Chuck

From: Tim Gorman [mailto:tim_at_evdbt.com] Sent: Wednesday, November 30, 2011 1:19 PM To: Chuck Boddy; oracle-l_at_freelists.org Subject: Re: raise_application_error and when others

It's probable that the trigger is raising the ORA-20400 exception as specified, and is working just fine, but then the *calling* procedure or code is handling the returned exception from the trigger to log to the error table.

-----Original Message-----

From: Chuck Boddy [mailto:Chuck.Boddy_at_gettyimages.com] Sent: Wednesday, November 30, 2011 02:11 PM To: oracle-l_at_freelists.org
Subject: raise_application_error and when others

Hi, I have a trigger that under a condition, I call raise_application_error. I also have when others defined to write to an error table passing sqlerrm and sqlcode. My understanding is that when the condition is met and raise_application_error is called, execution ends in the subprogram. What "appears" to be happening, is that raise_application_error is handled THEN drops down to when others. Because the record that is written to my error table has the sqlerrm and sqlcode that is only populated in my user-defined raise_application_error handler(-20400). Is this true, that if you call raise_application_error AND have when others defined, the call to raise_application_error will then drop down to your when others exception? Thanks, Chuck -- http://www.freelists.org/webpage/oracle-l

--

http://www.freelists.org/webpage/oracle-l Received on Wed Nov 30 2011 - 15:33:05 CST

Original text of this message