簡體   English   中英

PL/SQL 在異常引發后繼續

[英]PL/SQL Continue after exception raised

我有帶有異常處理的簡單觸發器。 我的問題是當用戶收到錯誤消息時如何繼續應用程序。

  CREATE OR REPLACE TRIGGER "AR_CHECK"
BEFORE INSERT  ON TABLE
REFERENCING OLD AS OLD NEW AS NEW 
FOR EACH ROW 

DECLARE

v_check number;

cursor c_ar_check is
select ar_no 
from name_view 
where name_id = :new.bill_to_name_id 
and name_type in ('TRAVEL_AGENT','COMPANY');

begin

open c_ar_check;
fetch c_ar_check into v_check;
close c_ar_check;

if v_check is null then
   raise_application_error(-20101, 'ERROR - NUMBER MISSING');
end if;


end;

使用上面的代碼,我收到了錯誤消息,但用戶無法繼續下一步。 是否有可能讓用戶警告 NULL 值但有可能繼續?

隨着raise_application_error ,沒有。 它將終止執行。

但是,如果你用其他東西代替它 - 一個簡單的dbms_output.put_line將在測試階段完成,而一些日志記錄過程 - 例如調用(n 自治事務)過程 - 在生產中可能是更好的選擇。

如果您選擇dbms_output.put_line ,請注意在該過程完成之前您不會看到任何消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM