PL/SQL (4) ORA-01403: no data found 대처 SQL문 (EXCEPTIOIN)
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 [소스플로우]
'Database > Oracle PLSQL' 카테고리의 다른 글
PL/SQL (9) FOR .. LOOP을 돌려보자. (0) | 2019.04.04 |
---|---|
PL/SQL (8) CURSOR, WHILE LOOP을 활용하여 프로시저 만들기 예제 (0) | 2019.04.04 |
PL/SQL (7) CURSOR, WHILE LOOP을 활용하여 데이터 확인하기 (0) | 2019.04.04 |
PL/SQL (6) CURSOR, BASIC LOOP을 활용한 프로시저 만들어보기 (0) | 2019.04.04 |
PL/SQL (5) 부서번호를 물어보게 하고 부서번호를 입력하면 해당 부서번호에 속한 사원들의 사원번호, 이름, 월급을 출력하는 예제 (0) | 2019.04.03 |
PL/SQL (3) 프로시저를 사용하여 다른테이블로 INSERT 예제 (0) | 2019.04.03 |
PL/SQL (2) WHILE.. LOOP , 예제 (0) | 2019.04.03 |
PL/SQL (1) LOOP + LPAD함수 +프로시저 예제 (0) | 2019.04.03 |