使用者定義的例外

顧名思義,使用者建立了使用者定義的異常。如果你想建立自己的例外,你必須:

  1. 宣告異常
  2. 從你的程式中提升它
  3. 建立合適的異常處理程式來捕獲他。

我想更新所有工人的工資。但如果沒有工人,就提出異常。

create or replace procedure update_salary
is
    no_workers exception;
    v_counter number := 0;
begin
    select count(*) into v_counter from emp;
    if v_counter = 0 then
        raise no_workers;
    else
        update emp set salary = 3000;
    end if;

    exception
        when no_workers then
            raise_application_error(-20991,'We don''t have workers!');                
end;
/

raise 是什麼意思?

當有需要時,資料庫伺服器會自動引發異常,但如果需要,可以使用 raise 明確引發任何異常。

程式 raise_application_error(error_number,error_message);

  • error_number 必須介於 -20000 和 -20999 之間
  • 發生錯誤時顯示的 error_message 訊息。