I have some scripts that get run often, always from within a connected SQLPlus session.
I need a way to exit the script when an error occurs, without disconnecting or exiting SQLPlus itself. 100% of the time, when an error occurs, the connected DBA will need to issue one or more commands into the session. 100% of the time, when an error occurs, there are other SQLPlus statements (and thus must be outside of a BEGIN..END;) later on in the script that must not be executed or serious problems could arise.
NOTE: If you suggest WHENEVER SQLERROR EXIT then you didn’t read the above text. That will disconnect and exit SQLPlus in addition to the script, which is not acceptable behavior.
I’ve found an interesting idea here which, when combined with spencer7593‘s answer, will get me selective sub-script calling, to which I can pass the PL/SQL output values. To wit:
Where
skip.sqlis an empty text file.UPDATE: I’ve moved most of this into a
RUN.SQLfile, where I pass in the boolean (0 or 1) as&1, the script name to call on success as&2, and then any other expected parameters to pass to the called script. Thus, it ends up looking something like this: