오라클 에러 메시지를 조회할 수 있는 함수를 생성해보자.
아래와 같이 패키지를 생성하자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
-- 1 CREATE OR REPLACE PACKAGE pkg_errm IS TYPE trc_errm IS RECORD (code NUMBER, errm VARCHAR2(4000)); TYPE tnt_errm IS TABLE OF trc_errm; FUNCTION fnc_errm RETURN tnt_errm PIPELINED; END pkg_errm; / CREATE OR REPLACE PACKAGE BODY pkg_errm IS FUNCTION fnc_errm RETURN tnt_errm PIPELINED IS l_errm trc_errm; BEGIN FOR i IN 1 .. 19999 LOOP l_errm.code := i; l_errm.errm := SQLERRM (-i); IF (l_errm.errm NOT LIKE '%Message%not%found%' ) THEN PIPE ROW (l_errm); END IF; END LOOP; END fnc_errm; END pkg_errm; / |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
-- 2 SELECT * FROM TABLE (pkg_errm.fnc_errm) WHERE ROWNUM <= 10; CODE ERRM ---- ------------------------------------------------------------------------------- 1 ORA-00001: 무결성 제약 조건(.)에 위배됩니다 17 ORA-00017: 트레이스 이벤트 설정이 세션에 요구되었습니다 18 ORA-00018: 최대 세션 수를 초과했습니다 19 ORA-00019: 최대 세션 라이선스 수를 초과했습니다 20 ORA-00020: 최대 프로세스 () 수를 초과했습니다 21 ORA-00021: 세션이 다른 프로세스에 첨부되어 있음; 세션을 변경할 수 없습니다 22 ORA-00022: 부적절한 세션ID이므로 액세스가 거절되었습니다 23 ORA-00023: 세션이 프로세스 고유의 메모리를 참조함; 세션을 분리할 수 없습니다 24 ORA-00024: 단일 프로세스 모드에서는 하나 이상의 프로세스가 로그인할 수 없습니다 25 ORA-00025: (를)을 할당하는데 실패했습니다 10 행이 선택되었습니다. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
-- 3 ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN' ; Session altered. SELECT * FROM TABLE (pkg_errm.fnc_errm) WHERE ROWNUM <= 10; CODE ERRM ---- ------------------------------------------------------------------------------- 1 ORA-00001: unique constraint (.) violated 17 ORA-00017: session requested to set trace event 18 ORA-00018: maximum number of sessions exceeded 19 ORA-00019: maximum number of session licenses exceeded 20 ORA-00020: maximum number of processes () exceeded 21 ORA-00021: session attached to some other process; cannot switch session 22 ORA-00022: invalid session ID; access denied 23 ORA-00023: session references process private memory; cannot detach session 24 ORA-00024: logins from more than one process not allowed in single-process mode 25 ORA-00025: failed to ALLOCATE 10 rows selected. |
'Oracle > PL/SQL' 카테고리의 다른 글
다형성 테이블 함수 (0) | 2019.01.04 |
---|---|
단위 변환 함수 (0) | 2018.12.31 |
런타임 실행 계획 조회 함수 (0) | 2018.12.12 |
RAW 변환 함수 (0) | 2018.11.13 |
데이터 타입 코드 변환 함수 (0) | 2018.11.12 |