에러 코드

개요

O2 Extension은 PostgreSQL의 빌트인 에러코드와 O2 Extension의 커스텀 에러 코드를 발생시킨다. PostgreSQL 빌트인 에러코드에 대한 자세한 내용은 PostgreSQL Error Codes 매뉴얼을 참조한다.

PostgreSQL의 에러코드는 5개의 문자로 구성되어 있다. O2 Extension의 커스텀 에러 코드는 상위 2개 문자가 “O2”로 고정이고, 세 번째 문자는 에러 코드의 카테고리를 정의한다.


에러 코드

카테고리 ‘0’ - 공통 에러

에러 코드
로그 레벨
설명

O2001

ERROR

공유 메모리 세그먼트를 참조할 수 없다. 공유 메모리 세그먼트를 참조하고 있는 객체를 삭제하거나 인스턴스 재기동이 필요하다. DBMS_ALERT 또는 DBMS_PIPE 안내서 참조한다.

O2002

ERROR

제공하지 않는 기능이다.

O2003

ERROR

NULL 값 허용되지 않는다.

O2004

ERROR

유효하지 않은 파라미터 값이 입력됐다.

O2005

ERROR

출력할 데이터가 없다.

카테고리 ‘A’ - DBMS_ALERT 에러

에러 코드
로그 레벨
설명

O2A00

ERROR

동시 구독 세션 개수 초과했다. 동시에 이벤트를 구독할 수 있는 세션의 최대 개수는 총 64개이다.

O2A01

ERROR

이벤트 이름은 NULL 값이 허용되지 않는다.

O2A02

ERROR

프로세스가 입력된 이벤트를 구독 하지 않는다.

O2A03

ERROR

현 세션에서 커밋되지 않은 signal이 존재한다.

카테고리 ‘F’ - O2Functions 에러

에러 코드
로그 레벨
설명

O2FD0

ERROR

유효하지 않은 날짜 형식이다. SQL Function 참조 안내서 참조한다.

O2FD3

ERROR

EXISTSNODE 함수에 유효하지 않은 namespace format의 인자가 전달됐다.

카테고리 ‘L’ - UTL_FILE 에러

에러 코드
로그 레벨
설명

O2L01

ERROR

유효하지 않은 파일 동작이다. 파일 열기 실패 혹은 파일 읽기, 쓰기 권한 없다.

O2L02

ERROR

파일 읽기 실패했다.

O2L03

ERROR

파일 쓰기 실패했다.

O2L04

ERROR

파일 열기 개수 한도 초과했다. 정해진 파일 열기 개수 제한에 도달했다.

O2L05

ERROR

유효하지 않은 파일 슬롯(열려 있는 파일에 대한 unique file id을 지칭)이다.

O2L06

ERROR

파일 슬롯 혹은 파일 에러가 발생했다.

O2L07

ERROR

UTL_FILE 패키지 내부, 파일 이름 유효 검사 처리과정 에러 발생했다.

O2L08

ERROR

file path가 유효하지 않다.

O2L10

ERROR

파일 쓰기에서 한 줄 당 크기 한도 초과했다.

카테고리 ‘P’ - DBMS_PIPE 에러

에러 코드
로그 레벨
설명

O2P00

ERROR

파이프 이름은 NULL을 허용하지 않는다.

O2P01

ERROR

입력한 이름의 파이프가 이미 존재한다.

O2P02

ERROR

로컬 메시지 버퍼 용량을 초과했다. 로컬 메시지 버퍼가 다 찰 때까지 DBMS_PIPE.pack_message 프로시저를 호출할 수 있다. 로컬 메시지 버퍼가 다 차서 해당 에러가 발생한 경우, 사용자는 DBMS_PIPE.reset_buffer 프로시저 또는 DBMS_PIPE.send_message 함수를 사용하여 로컬 메시지 버퍼를 비워줘야 한다. 로컬 메시지 버퍼의 용량은 4096 바이트이다.

O2P03

ERROR

로컬 메시지 버퍼가 비어 있다. 로컬 메시지 버퍼가 비어 있을 때 DBMS_PIPE.unpack_message 프로시저를 호출 할 경우 해당 에러가 발생한다.

O2P04

ERROR

로컬 메시지 아이템과 상이한 데이터 타입이다. DBMS_PIPE.unpack_message 프로시저에 입력한 OUT 파라미터의 데이터 타입과 로컬 메시지 아이템의 데이터 타입이 상이하다. DBMS_PIPE.next_item_type 함수를 통해 다음 아이템의 데이터 타입을 조회하여 알맞은 OUT 파라미터를 입력해야 한다.

카테고리 ‘Q’ - DBMS_SQL 에러

에러 코드
로그 레벨
설명

O2Q00

ERROR

DBMS_SQL.column_value 프로시저의 value 파라미터의 data type과 쿼리 결과 컬럼의 data type 간 type conversion이 불가능하다. type conversion이 가능한 data type의 파라미터로 변경해야 한다.

O2Q01

ERROR

DBMS_SQL.define_column 혹은 DBMS_SQL.define_array 프로시저에서 이미 define된 컬럼을 재정의했다.

O2Q02

ERROR

DBMS_SQL.define_array 프로시저의 value 파라미터가 array data type이 아니다.

O2Q03

ERROR

DBMS_SQL.bind_array 프로시저의 value 파라미터가 array data type이 아니다.

O2Q04

ERROR

DBMS_SQL.describe_columns 프로시저의 OUT 파라미터의 data type이 잘못됐다.

O2Q05

ERROR

DBMS_SQL.describe_columns 프로시저의 desc_t OUT 파라미터의 data type이 array가 아니다.

O2Q06

ERROR

DBMS_SQL.describe_columns 프로시저 수행 시점에 bind variable되지 않은 파라미터가 있다.

O2Q07

ERROR

DBMS_SQL 프로시저/함수 수행 중 내부 에러가 발생했다.

O2Q08

ERROR

DBMS_SQL.open_cursor로 열려 있는 커서 개수가 100개를 초과했다.

O2Q09

ERROR

DBMS_SQL.execute 혹은 DBMS_SQL.execute_and_fetch 함수로 SQL문을 실행하지 않은 상태에서 DBMS_SQL.fetch_rows 함수 혹은 DBMS_SQL.column_value 프로시저를 수행했다.

O2Q10

ERROR

DBMS_SQL.execute_and_fetch 함수에서 exact파라미터를 true로 하여 수행한 SELECT문 결과의 row 갯수가 1개보다 많다.

O2Q11

ERROR

DBMS_SQL.bind_array 함수에서 array 내 지정한 범위값(index1, index2)이 실제 저장된 array element 갯수 범위를 벗어났다.

O2Q12

ERROR

Define되지 않은 컬럼에 대한 fetch 요청이 발생했다.

카테고리 ‘R’ - DBMS_RANDOM 에러

에러 코드
로그 레벨
설명

O2R00

ERROR

DBMS_RANDOM.string 함수에 입력한 문자열 형식이 유효하지 않다.

O2R01

ERROR

DBMS_RANDOM.string 함수에 입력한 문자열 형식은 NULL을 허용하지 않는다.

카테고리 ‘U’ - DBMS_OUTPUT 에러

에러 코드
로그 레벨
설명

O2U01

ERROR

DBMS_OUTPUT 내부 버퍼 사이즈 한도 초과 에러이다. DBMS_OUTPUT.enable 실행 시 버퍼 사이즈를 무한이 아닌 값으로 지정한 상황에서 DBMS_OUTPUT.put, DBMS_OUTPUT.put_line, DBMS_OUTPUT.new_line 프로시저를 통해 입력한 데이터는 버퍼 사이즈 한도 초과로 더이상 버퍼에 넣을 수 없다.

카테고리 ‘V’ - O2Views 에러

에러 코드
로그 레벨
설명

O2V00

ERROR

버전 파일을 찾을 수 없다. PostgreSQL의 Extension 설치 디렉토리에 O2 Extension의 버전 파일을 찾을 수 없다.

카테고리 ‘X’ - Debug 에러

에러 코드
로그 레벨
설명

O2XM0

DEBUG2

메모리 할당을 기록하기 위한 디버깅 로그다.

O2XP0

DEBUG1

DBMS_PIPE의 파이프가 묵시적으로 생성됨을 기록하기 위한 디버깅 로그다. DBMS_PIPE.send_message 또는 DBMS_PIPE.receive_message 함수를 통해 파이프가 묵시적으로 생성될 수 있다.

O2XP1

DEBUG1

DBMS_PIPE에서 시간 초과 발생을 기록하기 위한 디버깅 로그다. DBMS_PIPE.send_message 또는 DBMS_PIPE.receive_message 함수에서 타임아웃이 발생할 수 있다.

O2XP2

DEBUG1

DBMS_PIPE에서 파이프가 제거됨을 기록하기 위한 디버깅 로그다. 묵시적으로 생성된 파이프가 비었거나 사용자가 명시적으로 제거 명령을 실행했을 때 파이프 제거가 발생했다.

O2XP3

DEBUG1

DBMS_PIPE에서 파이프로부터 분리되었음을 기록하기 위한 디버깅 로그다. 파이프에 대한 동작을 마무리한 후 프로세스가 파이프로부터 분리되었다.

O2XO0

DEBUG1

DBMS_OUTPUT에서 버퍼의 사이즈가 변동되었음을 기록하기 위한 디버깅 로그다.

O2XO1

DEBUG1

DBMS_OUTPUT에서 DBMS_OUTPUT.serveroutput 파라미터가 변동되었음을 기록하기 위한 디버깅 로그다.

Last updated