for in select 문의드립니다. 0 2 1,085

by DB초보자입니다 [PL/SQL] [2018.12.05 11:09:36]


with TEST AS
(
    select '1' AS NUM FROM DUAL
    union all
    select '2' AS NUM FROM DUAL

)

DECLARE

BEGIN

    FOR SEL IN
    (
       SELECT num FROM TEST
        WHERE num = '3'
    )
    LOOP
       DBMS_OUTPUT.PUT_LINE(SEL.num);
    END LOOP;
       EXCEPTION
            WHEN NO_DATA_FOUND THEN
               DBMS_OUTPUT.PUT_LINE('NO');
            WHEN OTHERS  THEN
               DBMS_OUTPUT.PUT_LINE('OTHER');

END;

안녕하세요 커서 관련 문의좀드릴려고합니다.

TEST같은 구조의 테이블이 있을때에 for문에는 조건에 만는 값이 없기떄문에 예외를 추가해주고싶은데

NO_DATA_FOUND 나OTHERS  에서 예외가 발생하지가않네요..

별도의 변수를 뺴서 체크하는 수밖에없느건가요?

V_CNT = 0 ;

if v_cnt = 0 then

end if <= 요런식으로...

 

by 마농 [2018.12.06 09:21:11]

네.
no_data_found 는 Select ~ Into 에서 나는 에러입니다.
for 문의 select 에서는 에러 안납니다.


by DB초보자입니다 [2018.12.06 13:18:22]

감사합니다!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입