PL/SQLの例外処理

例外の種類

例外は大きく分けて以下の3つに分類される。

  1. PL/SQLに事前に定義されているもの
  2. Oracleのエラーに対して自分で定義したもの
  3. アプリケーションの要件によるエラーに対して自分で定義したもの

基本構文

1.PL/SQLに事前に定義されているもの

2.Oracleのエラーに対して自分で定義したもの

3アプリケーションの要件によるエラーに対して自分で定義したもの

ex)
DECLARE

--2)Oracleのエラーに対して自分で定義したもの
ORA_600 EXCEPTION;
PRAGMA EXCEPTION_INIT(ORA_600, -600);

--3)アプリケーションの要件によるエラーに対して自分で定義したもの
ERR_20100 EXCEPTION;
PRAGMA EXCEPTION_INIT(ERR_20100, -20100);

BEGIN

--RAISE_APPLICATION_ERROR(-20100,'ERROR 20100');
RAISE_APPLICATION_ERROR(-20101,'ERROR_20101');

EXCEPTION
--ここに記述
--1)PL/SQLに事前定義されているもの
WHEN NO_DATA_FOUND THEN
--例外処理
DBMS_OUTPUT.PUT_LINE('NO_DATA_FOUND');

--2)Oracleのエラーに対して自分で定義したもの
WHEN ORA_600 THEN
--例外処理
DBMS_OUTPUT.PUT_LINE('ORA_600');

WHEN ERR_20100 THEN
DBMS_OUTPUT.PUT_LINE('-20100');

WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE || ',' || SQLERRM);

END;

コメント