반응형

"ORA-01403: no data found" 에러 해결 방법

ORA-01403 Cause:

  • No data was found from the objects.

ORA-01403 원인:

  • 개체에서 데이터를 찾을 수 없습니다.

ORA-01403 Action:

  • There was no data from the objects which may be due to end of fetch.

ORA-01403 조치:

  • 가져오기 종료로 인해 개체에 데이터가 없습니다.

ORA-01403 해결:

보통 DB에서 설정 값 혹은 공통코드값을 가지올때 많이 발행 합니다. 

ORA-01403: 데이터를 찾을 수 없습니다.

DECLARE
 V_SORT NVARCHAR2(100);
begin
    SELECT 1 INTO V_SORT FROM 
    (
        SELECT 1 SORT FROM DUAL UNION ALL
        SELECT 1 SORT FROM DUAL UNION ALL
        SELECT 2 SORT FROM DUAL     
    )X
    WHERE X.SORT =3
    ;
    dbms_output.put_line('V_SORT : ' || TO_CHAR( V_SORT));
EXCEPTION WHEN OTHERS THEN
    dbms_output.put_line( 'SQLERRM :' || SQLERRM ||CHR(13) || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
end;

수정후 

ORA-01403: 데이터를 찾을 수 없습니다.

DECLARE
 V_SORT NVARCHAR2(100);
begin
    BEGIN
        SELECT 1 INTO V_SORT FROM 
        (
            SELECT 1 SORT FROM DUAL UNION ALL
            SELECT 1 SORT FROM DUAL UNION ALL
            SELECT 2 SORT FROM DUAL     
        )X
        WHERE X.SORT =3
        ;
    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            --데이터를 찾을 수 없습니다
            V_SORT :='0';
        WHEN OTHERS THEN
            -- NULL 값으로 설정 
            V_SORT :=NULL;
    END;    
    dbms_output.put_line('V_SORT : ' || TO_CHAR( V_SORT));
EXCEPTION WHEN OTHERS THEN
    dbms_output.put_line( 'SQLERRM :' || SQLERRM ||CHR(13) || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
end;
반응형

+ Recent posts