> For the complete documentation index, see [llms.txt](https://docs.tibero.com/tmaxopensql/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tibero.com/tmaxopensql/tmax-o2-extensions/troubleshooting/error-code.md).

# 에러 코드

## 개요

O2 Extension은 PostgreSQL의 빌트인 에러코드와 O2 Extension의 커스텀 에러 코드를 발생시킵니다. PostgreSQL 빌트인 에러코드에 대한 자세한 내용은 [PostgreSQL Error Codes](https://www.postgresql.org/docs/current/errcodes-appendix.html) 매뉴얼을 참조합니다.

PostgreSQL의 에러코드는 5개의 문자로 구성됩니다. O2 Extension의 커스텀 에러 코드는 상위 2개 문자가 'O2'로 고정이고, 세 번째 문자는 에러 코드의 카테고리를 정의합니다.

***

## 에러 코드

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

<table><thead><tr><th width="137">에러 코드</th><th width="121">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2001</td><td>ERROR</td><td><p>공유 메모리 세그먼트를 참조할 수 없습니다.</p><p>공유 메모리 세그먼트를 참조하고 있는 객체를 삭제하거나 인스턴스 재기동이 필요합니다. (DBMS_ALERT, 또는 DBMS_PIPE 안내서 참조)</p></td></tr><tr><td>O2002</td><td>ERROR</td><td>제공하지 않는 기능입니다.</td></tr><tr><td>O2003</td><td>ERROR</td><td>NULL 값 허용되지 않습니다.</td></tr><tr><td>O2004</td><td>ERROR</td><td>유효하지 않은 파라미터 값이 입력됩니다.</td></tr><tr><td>O2005</td><td>ERROR</td><td>출력할 데이터가 없습니다.</td></tr><tr><td>O2006</td><td>ERROR</td><td>해당 인코딩으로 변환할 수 없습니다.</td></tr><tr><td>O2007</td><td>ERROR</td><td>현재 확장이 <code>shared_preload_libraries</code>에 설정되어 있지 않습니다.</td></tr></tbody></table>

### 카테고리 ‘A’ - DBMS\_ALERT 에러

<table><thead><tr><th width="124">에러 코드</th><th width="125">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2A00</td><td>ERROR</td><td><p>동시 구독 세션 개수를 초과합니다.</p><p>(동시에 이벤트를 구독할 수 있는 세션의 최대 개수는 총 64개)</p></td></tr><tr><td>O2A01</td><td>ERROR</td><td>이벤트 이름은 NULL 값이 허용되지 않습니다.</td></tr><tr><td>O2A02</td><td>ERROR</td><td>프로세스가 이벤트를 SUBSCRIBE하고 있지 않습니다.</td></tr><tr><td>O2A03</td><td>ERROR</td><td>동일 트랜잭션 내에서 SIGNAL → WAITONE 또는 WAITANY를 수행이 허용되지 않습니다.</td></tr></tbody></table>

### 카테고리 ‘B’ - License 에러

<table><thead><tr><th width="150">에러 코드</th><th width="159">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2B00</td><td>ERROR</td><td>라이센스 인증에 실패했습니다.</td></tr><tr><td>02B01</td><td>ERROR</td><td>라이센스 파일을 찾을 수 없습니다.</td></tr><tr><td>O2B02</td><td>ERROR</td><td>라이센스가 만료됐습니다.</td></tr><tr><td>O2B03</td><td>ERROR</td><td>라이센스의 시그니처가 잘못됐습니다.</td></tr><tr><td>O2B04</td><td>ERROR</td><td>호스트 이름이 잘못됐습니다.</td></tr><tr><td>O2B05</td><td>ERROR</td><td>IP 검증에 실패했습니다.</td></tr><tr><td>O2B06</td><td>ERROR</td><td>접속 가능한 USER의 수가 라이센스와 다릅니다.</td></tr><tr><td>O2B07</td><td>ERROR</td><td>허용된 CPU 수를 초과합니다.</td></tr><tr><td>O2B08</td><td>ERROR</td><td>잘못된 유효기간입니다.</td></tr><tr><td>O2B11</td><td>ERROR</td><td>라이센스 검증 로직의 내부 오류입니다.</td></tr></tbody></table>

### 카테고리 ‘D’ - DBMS\_JOB 에러

<table><thead><tr><th width="148">에러 코드</th><th width="121">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2D00</td><td>ERROR</td><td>DBMS_JOB 기능 동작 수행 중 발생한 내부 동작 에러입니다.</td></tr><tr><td>O2D01</td><td>ERROR</td><td>입력한 id에 해당하는 job이 존재하지 않습니다.</td></tr></tbody></table>

### 카테고리 ‘F’ - O2Functions 에러

<table><thead><tr><th width="131">에러 코드</th><th width="135">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2FD0</td><td>ERROR</td><td>유효하지 않은 날짜 형식입니다.<br><br><a href="/pages/gZ6lIG21eYeBict3oMkG">SQL Function 참조 안내서 </a>를 참조합니다.</td></tr><tr><td>O2FD3</td><td>ERROR</td><td>EXISTSNODE 함수에 유효하지 않은 namespace format의 인자가 전달됐습니다.</td></tr></tbody></table>

### 카테고리 ‘H’ - DBMS\_RLS 에러

<table><thead><tr><th width="134">에러 코드</th><th width="133">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2H00</td><td>ERROR</td><td>불충분한 권한</td></tr><tr><td>O2H01</td><td>ERROR</td><td>해당 정책이 존재하지 않습니다.</td></tr><tr><td>O2H02</td><td>ERROR</td><td>해당 테이블이 존재하지 않습니다.</td></tr><tr><td>O2H03</td><td>ERROR</td><td><p>정책함수가 유효하지 않거나, 정책 함수의 스키마가 존재하지 않거나, 테이블당 최대 정책 수를 초과하거나, 해당 정책은 이미 존재하거나, SPI 연결이 실패합니다.</p><p>에러 메시지 참고가 필요합니다.</p></td></tr><tr><td>O2H04</td><td>ERROR</td><td>o2type extension이 설치 되지 않아, varchar2 타입이 존재하지 않습니다.</td></tr><tr><td>O2H05</td><td>ERROR</td><td><p>PostgreSQL 버전이 15이하로</p><p>해당 기능을 지원하지 않습니다.</p></td></tr><tr><td>O2H06</td><td>ERROR</td><td>INSERT에 대한 정책 추가 시, update_check가 true 여야 합니다.</td></tr></tbody></table>

### 카테고리 ‘J’ - O2Scheduler 에러

<table><thead><tr><th width="139">에러코드</th><th width="152">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2J00</td><td>ERROR</td><td>o2scheduler 내부 동작 에러</td></tr><tr><td>O2J01</td><td>WARNING</td><td>job launcher 프로세스 등록 실패</td></tr><tr><td>O2J02</td><td>WARNING</td><td>job launcher 프로세스 해제 실패</td></tr><tr><td>O2J03</td><td>WARNING</td><td>job worker 프로세스 등록 실패</td></tr><tr><td>O2J04</td><td>ERROR</td><td>job worker 프로세스 내부 동작 에러</td></tr><tr><td>O2J05</td><td>WARNING</td><td>job bootstrapper 프로세스 등록 실패</td></tr><tr><td>O2J06</td><td>ERROR</td><td>job trigger 내부 동작 에러</td></tr><tr><td>O2J10</td><td>ERROR</td><td>CALENDER STRING의 옵션 중복</td></tr><tr><td>O2J11</td><td>ERROR</td><td>PROGRAM을 찾을 수 없습니다.</td></tr><tr><td>O2J12</td><td>ERROR</td><td>잘못된 PROGRAM 타입</td></tr><tr><td>O2J13</td><td>ERROR</td><td>인자를 찾을 수 없습니다.</td></tr><tr><td>O2J14</td><td>ERROR</td><td>인자의 개수와 정의된 인자의 개수가 맞지 않습니다.</td></tr><tr><td>O2J15</td><td>ERROR</td><td>PROGRAM 수행 실패</td></tr><tr><td>O2J16</td><td>ERROR</td><td>SCHEDULE을 찾을 수 없습니다.</td></tr><tr><td>O2J17</td><td>ERROR</td><td>TABLE을 찾을 수 없습니다.</td></tr><tr><td>O2J18</td><td>ERROR</td><td>JOB을 찾을 수 없습니다.</td></tr><tr><td>O2J19</td><td>ERROR</td><td>PROGRAM ARGUMENT를 찾을 수 없습니다.</td></tr><tr><td>O2J20</td><td>ERROR</td><td>정의되지 않은 ARGUMENT</td></tr><tr><td>O2J21</td><td>ERROR</td><td>PROGRAM이 이미 존재합니다.</td></tr><tr><td>O2J22</td><td>ERROR</td><td>SCHEDULE이 이미 존재합니다.</td></tr><tr><td>O2J23</td><td>ERROR</td><td>SCHEDULE 내부 오류입니다.</td></tr><tr><td>O2J24</td><td>ERROR</td><td>JOB이 이미 존재합니다.</td></tr><tr><td>O2J25</td><td>INFO</td><td>JOB이 실행 중입니다.</td></tr><tr><td>O2J26</td><td>ERROR</td><td>ARGUMENT가 이미 정의되었습니다.</td></tr></tbody></table>

### 카테고리 ‘L’ - UTL\_FILE 에러

<table><thead><tr><th width="132">에러 코드</th><th width="143">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2L01</td><td>ERROR</td><td>유효하지 않은 파일 동작입니다. 파일 열기 실패 혹은 파일 읽기, 쓰기 권한이 없습니다.</td></tr><tr><td>O2L02</td><td>ERROR</td><td>파일 읽기 실패</td></tr><tr><td>O2L03</td><td>ERROR</td><td>파일 쓰기 실패</td></tr><tr><td>O2L04</td><td>ERROR</td><td>파일 열기 개수 한도 초과<br>정해진 파일 열기 개수 제한 도달</td></tr><tr><td>O2L05</td><td>ERROR</td><td>유효하지 않은 파일 슬롯(열려 있는 파일에 대한 unique file id을 지칭)입니다.</td></tr><tr><td>O2L06</td><td>ERROR</td><td>파일 슬롯 혹은 파일 에러가 발생했습니다.</td></tr><tr><td>O2L07</td><td>ERROR</td><td>UTL_FILE 패키지 내부, 파일 이름 유효 검사 처리과정 에러가 발생했습니다.</td></tr><tr><td>O2L08</td><td>ERROR</td><td>file path가 유효하지 않습니다.</td></tr><tr><td>O2L10</td><td>ERROR</td><td>파일 쓰기에서 한 줄 당 크기 한도 초과</td></tr></tbody></table>

### 카테고리 ‘P’ - DBMS\_PIPE 에러

<table><thead><tr><th width="128">에러 코드</th><th width="124">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2P00</td><td>ERROR</td><td>파이프 이름은 NULL을 허용하지 않습니다.</td></tr><tr><td>O2P01</td><td>ERROR</td><td>입력한 이름의 파이프가 이미 존재합니다.</td></tr><tr><td>O2P02</td><td>ERROR</td><td><p>로컬 메시지 버퍼 용량을 초과했습니다.</p><p>로컬 메시지 버퍼가 다 찰 때까지 <code>DBMS_PIPE.pack_message</code> 프로시저를 호출할 수 있습니다.</p><p>로컬 메시지 버퍼가 다 차서 해당 에러가 발생한 경우, 사용자는 <code>DBMS_PIPE.reset_buffer</code> 프로시저 또는 <code>DBMS_PIPE.send_message</code> 함수를 사용하여 로컬 메시지 버퍼를 비워줘야 합니다.</p><p>(로컬 메시지 버퍼의 용량은 4096 바이트)</p></td></tr><tr><td>O2P03</td><td>ERROR</td><td><p>로컬 메시지 버퍼가 비어 있습니다.</p><p>로컬 메시지 버퍼가 비어 있을 때 <code>DBMS_PIPE.unpack_message</code> 프로시저를 호출 할 경우 해당 에러가 발생합니다.</p></td></tr><tr><td>O2P04</td><td>ERROR</td><td>로컬 메시지 아이템과 상이한 데이터 입니다<code>DBMS_PIPE.unpack_message</code> 프로시저에 입력한 OUT 파라미터의 데이터 타입과 로컬 메시지 아이템의 데이터 타입이 상이합니다.<code>DBMS_PIPE.next_item_type</code> 함수를 통해 다음 아이템의 데이터 타입을 조회하여 알맞은 OUT 파라미터를 입력해야 합니다.</td></tr></tbody></table>

### 카테고리 ‘Q’ - DBMS\_SQL 에러

<table><thead><tr><th width="118">에러 코드</th><th width="122">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2Q00</td><td>ERROR</td><td><code>DBMS_SQL.column_value</code> 프로시저의 value 파라미터의 data type과 쿼리 결과 컬럼의 data type 간 type conversion이 불가능합니다.type conversion이 가능한 data type의 파라미터로 변경해야합니다.</td></tr><tr><td>O2Q01</td><td>ERROR</td><td><code>DBMS_SQL.define_column</code> 혹은 <code>DBMS_SQL.define_array</code> 프로시저에서 이미 define된 컬럼을 재정의합니다.</td></tr><tr><td>O2Q02</td><td>ERROR</td><td><code>DBMS_SQL.define_array</code> 프로시저의 value 파라미터가 array data type이 아닙니다.</td></tr><tr><td>O2Q03</td><td>ERROR</td><td><code>DBMS_SQL.bind_array</code> 프로시저의 value 파라미터가 array data type이 아닙니다.</td></tr><tr><td>O2Q04</td><td>ERROR</td><td><code>DBMS_SQL.describe_columns</code> 프로시저의 OUT 파라미터의 data type이 잘못됐습니다.</td></tr><tr><td>O2Q05</td><td>ERROR</td><td><code>DBMS_SQL.describe_columns</code> 프로시저의 desc_t OUT 파라미터의 data type이 array가 아닙니다.</td></tr><tr><td>O2Q06</td><td>ERROR</td><td><code>DBMS_SQL.describe_columns</code> 프로시저 수행 시점에 bind variable되지 않은 파라미터가 있습니다.</td></tr><tr><td>O2Q07</td><td>ERROR</td><td><code>DBMS_SQL</code> 프로시저/함수 수행 중 내부 에러가 발생했습니다.</td></tr><tr><td>O2Q08</td><td>ERROR</td><td><code>DBMS_SQL.open_cursor</code>로 열려 있는 커서 개수가 100개를 초과했습니다.</td></tr><tr><td>O2Q09</td><td>ERROR</td><td><code>DBMS_SQL.execute</code> 혹은 <code>DBMS_SQL.execute_and_fetch</code> 함수로 SQL문을 실행하지 않은 상태에서 <code>DBMS_SQL.fetch_rows</code> 함수 혹은 <code>DBMS_SQL.column_value</code> 프로시저를 수행했습니다.</td></tr><tr><td>O2Q10</td><td>ERROR</td><td><code>DBMS_SQL.execute_and_fetch</code> 함수에서 exact파라미터를 true로 하여 수행한 SELECT문 결과의 row 갯수가 1개보다 많습니다.</td></tr><tr><td>O2Q11</td><td>ERROR</td><td><code>DBMS_SQL.bind_array</code> 함수에서 array 내 지정한 범위값(index1, index2)이 실제 저장된 array element 갯수 범위를 벗어났습니다.</td></tr><tr><td>O2Q12</td><td>ERROR</td><td>Define되지 않은 컬럼에 대한 fetch 요청이 발생했습니다.</td></tr></tbody></table>

### 카테고리 ‘R’ - DBMS\_RANDOM 에러

<table><thead><tr><th width="131">에러 코드</th><th width="133">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2R00</td><td>ERROR</td><td><code>DBMS_RANDOM.string</code> 함수에 입력한 문자열 형식이 유효하지 않습니다.</td></tr><tr><td>O2R01</td><td>ERROR</td><td><code>DBMS_RANDOM.string</code> 함수에 입력한 문자열 형식은 NULL을 허용하지 않습니다.</td></tr></tbody></table>

### 카테고리 ‘S’ - DBMS\_ASSERT 에러

<table><thead><tr><th width="140">에러 코드</th><th width="129">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2S00</td><td>ERROR</td><td>입력한 문자열(schema name)은 형식이 유효하지 않습니다.</td></tr><tr><td>O2S01</td><td>ERROR</td><td>입력한 문자열(sql name)은 형식이 유효하지 않습니다.</td></tr><tr><td>O2S02</td><td>ERROR</td><td>입력한 문자열(simple sql name)은 형식이 유효하지 않습니다.</td></tr><tr><td>O2S03</td><td>ERROR</td><td>입력한 문자열(object name)은 형식이 유효하지 않습니다.</td></tr></tbody></table>

### 카테고리 ‘U’ - DBMS\_OUTPUT 에러

<table><thead><tr><th width="109">에러 코드</th><th width="126">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2U01</td><td>ERROR</td><td><code>DBMS_OUTPUT</code> 내부 버퍼 사이즈 한도 초과 에러입니다. <code>DBMS_OUTPUT.enable</code> 실행 시 버퍼 사이즈를 무한이 아닌 값으로 지정한 상황에서 <code>DBMS_OUTPUT.put</code>, <code>DBMS_OUTPUT.put_line</code>, <code>DBMS_OUTPUT.new_line</code> 프로시저를 통해 입력한 데이터는 버퍼 사이즈 한도 초과로 더이상 버퍼에 넣을 수 없습니다.</td></tr></tbody></table>

### 카테고리 ‘V’ - O2Views 에러

<table><thead><tr><th width="123">에러 코드</th><th width="129">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2V00</td><td>ERROR</td><td>버전 파일을 찾을 수 없습니다.PostgreSQL의 Extension 설치 디렉토리에 O2 Extension의 버전 파일을 찾을 수 없습니다.</td></tr></tbody></table>

### 카테고리 ‘X’ - Debug 에러

<table><thead><tr><th width="110">에러 코드</th><th width="114">로그 레벨</th><th>설명</th></tr></thead><tbody><tr><td>O2XM0</td><td>DEBUG2</td><td>메모리 할당을 기록하기 위한 디버깅 로그입니다.</td></tr><tr><td>O2XP0</td><td>DEBUG1</td><td><code>DBMS_PIPE</code>의 파이프가 묵시적으로 생성됨을 기록하기 위한 디버깅 로그입니다. <code>DBMS_PIPE.send_message</code> 또는 <code>DBMS_PIPE.receive_message</code> 함수를 통해 파이프가 묵시적으로 생성될 수 있습니다.</td></tr><tr><td>O2XP1</td><td>DEBUG1</td><td><code>DBMS_PIPE</code>에서 시간 초과 발생을 기록하기 위한 디버깅 로그입니다. <code>DBMS_PIPE.send_message</code> 또는 <code>DBMS_PIPE.receive_message</code> 함수에서 타임아웃이 발생할 수 있습니다.</td></tr><tr><td>O2XP2</td><td>DEBUG1</td><td><code>DBMS_PIPE</code>에서 파이프가 제거됨을 기록하기 위한 디버깅 로그입니다. 묵시적으로 생성된 파이프가 비었거나 사용자가 명시적으로 제거 명령을 실행했을 때 파이프 제거가 발생했습니다.</td></tr><tr><td>O2XP3</td><td>DEBUG1</td><td><code>DBMS_PIPE</code>에서 파이프로부터 분리되었음을 기록하기 위한 디버깅 로그입니다. 파이프에 대한 동작을 마무리한 후 프로세스가 파이프로부터 분리되었습니다.</td></tr><tr><td>O2XO0</td><td>DEBUG1</td><td><code>DBMS_OUTPUT</code>에서 버퍼의 사이즈가 변동되었음을 기록하기 위한 디버깅 로그입니다.</td></tr><tr><td>O2XO1</td><td>DEBUG1</td><td><code>DBMS_OUTPUT</code>에서 <code>DBMS_OUTPUT.serveroutput</code> 파라미터가 변동되었음을 기록하기 위한 디버깅 로그입니다.</td></tr></tbody></table>

###


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.tibero.com/tmaxopensql/tmax-o2-extensions/troubleshooting/error-code.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
