에러 코드
개요
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 에러
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