sql >> データベース >  >> RDS >> Oracle

PL/SQL-アプリケーションエラーの例を上げる

    ここでは、特定の条件が一致しない場合にPL / SQLストアド・プロシージャでアプリケーション・エラー(raise_application_error)を発生させる例を示します。指定された従業員番号(empno)のEMPテーブルで手数料(comm)がnullの場合、プログラムは例外を発生させます。

    PL/SQLの例でのRaise_Application_Error

    CREATE OR REPLACE PROCEDURE compute_sal (i_EMPNO IN emp.empno%TYPE)
    IS
    CURSOR c_emp (p_empno emp.empno%TYPE)
    IS
    SELECT sal, comm
    FROM emp
    WHERE empno = p_empno;
    
    v_sal NUMBER;
    v_comm NUMBER;
    BEGIN
    OPEN c_emp (i_empno);
    
    FETCH c_emp
    INTO v_sal, v_comm;
    
    CLOSE c_emp;
    
    IF v_comm IS NULL
    THEN
    raise_application_error (-20001, 'Commission is null.');
    END IF;
    
    DBMS_OUTPUT.put_line ('Total salary is: ' || (v_sal + v_comm));
    END compute_sal;
    /

    実行

    SET SERVEROUTPUT ON;
    BEGIN
    COMPUTE_SAL(7369);
    END;
    /

    出力

    SQL> SET SERVEROUTPUT ON;
    SQL> BEGIN
    2 COMPUTE_SAL(7369);
    3 END;
    4 /
    BEGIN
    *
    ERROR at line 1:
    ORA-20001: Commission is null.
    ORA-06512: at "SCOTT.COMPUTE_SAL", line 16
    ORA-06512: at line 2

    参照:

    1. PL/SQLでエラー行番号を検索する
    2. OracleFormsのOn-Errorトリガーの例
    3. エラーOracle12cデータベースインストールガイド
    1. ハロウィーンの問題–パート3

    2. Oracle ORA-12154:TNS:サービス名エラーを解決できませんでしたか?

    3. Androidルーム-すべてのテーブルのsqlite_sequenceをクリアする方法

    4. SQL Serverで外部キーを作成する方法(T-SQLの例)