「PL/SQL」Raise文で例外を作成するサンプル

2021年8月30日

書式
RAISE 例外名
使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
   DECLARE
        --変数宣言
v_deptno NUMBER := 1005;
v_name VARCHAR2 (20) := '開発部';
--例外定義の宣言
invalid_test EXCEPTION;
--表の行を更新
BEGIN
UPDATE emp_tbl
SET department_name = v_name
WHERE department_id = v_deptno;
IF SQL%NOTFOUND THEN
--RAISE文を使用
RAISE raise_test;
END IF;
ROLLBACK;
--例外
EXCEPTION
--例外ハンドラ
WHEN raise_test THEN
DBMS_OUTPUT.PUT_LINE ('部門が存在しません');
--SQLエラーメッセージ
DBMS_OUTPUT.PUT_LINE (SQLERRM);
--SQLコード
DBMS_OUTPUT.PUT_LINE (SQLCODE);
END;
   DECLARE         --変数宣言 v_deptno NUMBER := 1005; v_name VARCHAR2 (20) := '開発部'; --例外定義の宣言 invalid_test EXCEPTION; --表の行を更新 BEGIN UPDATE emp_tbl SET department_name = v_name WHERE department_id = v_deptno; IF SQL%NOTFOUND THEN --RAISE文を使用 RAISE raise_test; END IF; ROLLBACK; --例外 EXCEPTION --例外ハンドラ WHEN raise_test THEN DBMS_OUTPUT.PUT_LINE ('部門が存在しません'); --SQLエラーメッセージ DBMS_OUTPUT.PUT_LINE (SQLERRM); --SQLコード DBMS_OUTPUT.PUT_LINE (SQLCODE); END;
   DECLARE
        --変数宣言
          v_deptno NUMBER := 1005;
          v_name VARCHAR2 (20) := '開発部';
              --例外定義の宣言
          invalid_test EXCEPTION;
              --表の行を更新
         BEGIN
          UPDATE emp_tbl
          SET department_name = v_name
          WHERE department_id = v_deptno;
              
         IF SQL%NOTFOUND THEN
               --RAISE文を使用
            RAISE raise_test;
         END IF;
         
             ROLLBACK;
         --例外
             EXCEPTION
             --例外ハンドラ
           WHEN raise_test THEN
           DBMS_OUTPUT.PUT_LINE ('部門が存在しません');
                 --SQLエラーメッセージ
           DBMS_OUTPUT.PUT_LINE (SQLERRM);
                 --SQLコード
           DBMS_OUTPUT.PUT_LINE (SQLCODE);
        END;

 

Oracle

Posted by arkgame