본문 바로가기
Database

Oracle SQL 문장에서 에러 위치 값 찾기

by jayden-lee 2019. 4. 12.
728x90

Oracle 데이터베이스 SQL 문장에서 에러가 발생한 위치를 찾기 위해서는 PL/SQL 코드를 실행 시켜야 한다.

declare
    error_sql varchar(1000); -- SQL 문장 담을 변수
    error_pos number default -1; -- 에러 위치 값을 담을 변수
    vc_cur integer default dbms_sql.open_cursor; -- 커서 열기
begin
    -- 테스트 대상 SQL 문장
    error_sql := 'select * from dual where name = jayden-lee';

    begin
        dbms_sql.parse( vc_cur, error_sql, dbms_sql.native ); -- 파싱
        exception
            when others then
               error_pos := dbms_sql.last_error_position;
    end;

    dbms_sql.close_cursor( vc_cur ); -- 커서닫기

    dbms_output.put_line(error_sql); -- SQL 출력

    if error_pos > -1 then dbms_output.put_line('SQL Error Position : ' ||  error_pos);
    else dbms_output.put_line('SQL No Error');
    end if;
end;

Output(결과값)으로는 테스트 SQL 문장에서 에러가 발생한 위치 값이 출력된다.

댓글