첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ RAISE 함수 : 예외 발생시키기

------------------------------------------------------------------------------------------------------------------------

CREATE OR REPLACE PROCEDURE CheckAccount(P_ACCOUNT_ID IN ACCOUNTS.ID%TYPE)

IS

    V_BALANCE_BELOW_MINIMUM EXCEPTION;

    V_ACCOUNT_NAME          ACCOUNTS.ACCOUNT_NAME%TYPE;

    V_BALANCE_REMAINING     NUMBER;

BEGIN

    SELECT ACCOUNT_NAME INTO V_ACCOUNT_NAME

    FROM   ACCOUNTS

    WHERE  ACCOUNT_ID = P_ACCOUNT_ID;

 

    V_BALANCE_REMAINING := GetAccountBalance(P_ACCOUNT_ID);

 

    DBMS_OUTPUT.PUT_LINE(V_ACCOUNT_NAME || '의 계좌 잔액은 ' || V_BALANCE_REMAINING || '원 입니다.');

 

    IF V_BALANCE_REMAINING < 1000

    THEN

        RAISE V_BALANCE_BELOW_MINIMUM;

    END IF;

 

EXCEPTION

    WHEN NO_DATA_FOUND

    THEN

        DBMS_OUTPUT.PUT_LINE(P_ACCOUNT_ID || ' 계정 ID에 해당하는 계정이 없습니다.');

 

    WHEN V_BALANCE_BELOW_MINIMUM

    THEN

        DBMS_OUTPUT.PUT_LINE(V_ACCOUNT_NAME || '의 계좌 잔액이 1,000원보다 적습니다.');

 

        RAISE;

END;

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요