「PL/SQL」Raise文で例外を作成するサンプル
書式
RAISE 例外名
使用例
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;