PL/SQL (4) ORA-01403: no data found 대처 SQL문 (EXCEPTIOIN)

2019. 4. 3. 15:29 Database/Oracle PLSQL

SET SERVEROUTPUT ON;

ACCEPT P_DEPT_NO PROMPT '정보를 원하는 부서번호를 입력하세요.';

DECLARE 


    V_EMP_NO NUMBER(8) := 0;

    V_EMP_ID VARCHAR2(30);

    V_EMP_NM VARCHAR2(20);

    V_DEPT_NO NUMBER(4) := &P_DEPT_NO;

    V_SAL NUMBER(10) := 0;

  

BEGIN

    SELECT EMP_NO, EMP_ID, EMP_NM, DEPT_NO, SAL 

    INTO V_EMP_NO, V_EMP_ID, V_EMP_NM, V_DEPT_NO, V_SAL

    FROM TB_LS_EMP867

    WHERE DEPT_NO = V_DEPT_NO;

    

    DBMS_OUTPUT.PUT_LINE(V_EMP_NO);

    DBMS_OUTPUT.PUT_LINE(V_EMP_ID);

    DBMS_OUTPUT.PUT_LINE(V_EMP_NM);

    DBMS_OUTPUT.PUT_LINE(V_DEPT_NO);

    DBMS_OUTPUT.PUT_LINE(V_SAL);



--ORA-01403: no data found 대처 SQL문  

-- 실제 인출은 요구된 것보다 많은 수의 행을 추출합니다.

    EXCEPTION

    WHEN NO_DATA_FOUND THEN NULL;

    WHEN OTHERS THEN

    NULL;

    

END;

/


-- EXCEPTION 처리를 해줘야한다. (루프를 안돌렸으므로) 그렇지않으면 에러 발생 exact fetch returns more than requested number of rows



출처: https://sourceflower.tistory.com/28?category=608037 [소스플로우]