2020년 7월 19일 일요일

PL/SQL 예외처리와 SQLCODE, SQLERRM 함수

PL/SQL 예외처리와 SQLCODE, SQLERRM 함수

http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=581

6.4 예외처리와 SQLCODE, SQLERRM 함수

n SQLCODE : 오라클 서버 에러코드를 정수로 리턴한다.

n SQLERRM : 오라클 서버 에러메시지를 리턴한다.

n 발생하는 예외에 대해 보편적으로 EXCEPTION절에서 하나씩 예외를 받아서 처리해도 되지만 WHEN OTHRES THEN 절만 기술하고 아래처럼 사용할 수도 있다.

EXCEPTION

WHEN OTHERS THEN

raise_application_error(-20001, SQLCODE || ' => ' || SQLERRM);

END;

n 만약 에러로그 테이블을 운영한다면 다음처럼 기술하면 된다.

EXCEPTION

WHEN OTHERS THEN

errcode := SQLCODE;

errmsg := SQLERRM;

INSERT INTO errlog VALUES (errcode, errmsg);

END;

SQL> create or replace procedure deldept2

(p_deptno in dept.deptno%type)

as

begin

delete from dept

where deptno=p_deptno;

commit;

exception

when others then

rollback;

raise_application_error(-20001,

'에러발생! 에러코드 => '||SQLCODE|| ' 에러메시지 => ' ||SQLERRM);

end;

/

프로시저가 생성되었습니다.

SQL> exec deldept2(10)

BEGIN deldept2(10); END;

*

1행에 오류:

ORA-20001: 에러발생! 에러코드 => -2292 에러메시지 => ORA-02292: 무결성

제약조건(SCOTT.FK_DEPTNO)이 위배되었습니다- 자식 레코드가 발견되었습니다

ORA-06512: "SCOTT.DELDEPT2", 12행

ORA-06512: 1행

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...