在我的應用程序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 –