在我的应用程序Oracle过程,目前通过UNIX脚本调用,当有异常块中,我们正在处理这样的错误: -处理Oracle过程错误
PROC_LOGS('<PROC_NAME>', <TABLE_NAME>, 'Exception','Exception occured - '||SQLERRM);
PROC_LOG什么也不做,但插入入口到日志表中,但我们现在需要现在从unix中调用该错误(返回除0之外的某个值),以便可以最终终止剩余的进程,那么执行此操作的最佳方法是什么?
CREATE OR REPLACE....
...
DECLARE
....
BEGIN
..
...
EXCEPTION
WHEN OTHERS THEN
PROC_LOGS('<PROC_NAME>', <TABLE_NAME>, 'EXCEPTION','EXCEPTION OCCURED - '||SQLERRM);
END;
的Unix脚本部分从那里我打电话是程序
sqlplus <<-!
$US/[email protected]$I
set serveroutput on
@$SQL/execute_proc.sql $1 $2
execue_proc
包含这样的事情: -
define IN_1 = '&1';
define IN_2 = '&2';
spool $SQL/test_&&IN
declare
P_IN_TABLE_NAME varchar2(250) := '&&IN_TABLE_NAME';
P_IN_REGION varchar2(250) := '&&IN_REGION';
begin
PROC_UPDATE_CHARGE_FACT(P_IN_TABLE_NAME,P_IN_REGION);
end;
/
spool off
请发表您的PROC的一个片段,显示了异常处理。 – dogbane
我已经添加了proc –