ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
独自の例外を定義
スポンサード リンク

独自に例外を定義する方法は以下になります。

例外名 EXCEPTION;

RAISE 例外名;
一番シンプルな独自例外の定義です。

エラーを発生させる場合は、RAISEコマンドで発生させます。
この例外は、システムエラー以外の、業務的なエラー(論理エラー)などを発生させる場合に使用します。
PRAGMA EXCEPTION_INIT(例外名,オラクルエラー番号) 事前定義例外以外で、オラクルエラーの例外を定義したい場合にしようします。オラクルエラー番号に使用するのは、マイナスのエラー番号になります。

 例) オラクルエラー番号の指定例
   ORA-00500 → -500


例1) 独自例外「null_data_exception」のサンプル
declare

 v_dept_id dept.dept_id%type;
 v_dept_name dept.dept_name%type;

 -- 独自例外「null_data_exception」を定義
 null_data_exception exception;

begin

 select dept_id,dept_name into v_dept_id,v_dept_name from dept
    where dept_id = 'D05';

 if v_dept_name is null then
  -- 独自例外を発生させる
  raise null_data_exception;
 end if;

 dbms_output.put_line('部門コード:' || v_dept_id);
 dbms_output.put_line('部門名:' || v_dept_name);

exception
 when null_data_exception then
  -- 独自例外例外「null_data_exception」が発生した場合の処理
  dbms_output.put_line('部門名称がNULLです');
 when others then
  dbms_output.put_line('その他エラー');

end;


例2) プラグマでオラクルエラー”ORA-12899”を独自例外で定義。
declare

 value_too_large exception;
 -- 独自例外「value_too_large」を定義
 pragma exception_init(value_too_large,-12899);

begin

 insert into dept values('D06A','人事部');

 commit work;

exception
 when value_too_large then
  -- 独自例外例外「value_too_large」が発生した場合の処理
  dbms_output.put_line('登録データが大きすぎます');
 when others then
  dbms_output.put_line('その他エラー');

end;

スポンサード リンク


例外の処理(EXCEPTION)
独自の例外を定義
オラクルエラーコード/エラーメッセージを取得する(SQLCODE/SQLERRM)

PL/SQL へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ