14. 전처리 오류 코드/메시지
전처리 오류
전처리 과정에서 발생하는 오류 메시지의 형식에 대해서 설명한다.
오류 출력 형식
[ERR-<error code> : <error message>]
File : <file name>
Line : <line number>
Offset : <n-m>
Error_token : <error token>
- <error code>: 발생한 오류 코드
- <error message>: 오류 메시지
- <file name>: 오류가 발생한 파일의 이름
- <line number>: 오류가 발생한 행 번호
- <n-m>: 오류가 발생한 열 위치
- <error token>: 오류가 발생한 토큰
예제
다음 예제는 EXEC SQL END DECLARE SECTION이 없을 경우의 오류 출력을 보여준다.
[ERR-302L : EXEC SQL END DECLARE SECTION is not exist.]
File : tmp.sc
Line : 4
Offset: 1-31
Error_token:EXEC SQL BEGIN DECLARE SECTION;
오류 코드 형식
전처리 과정에서 발생하는 오류 코드체계는 다음과 같다.
오류 번호
오류 종류에 따라 다음과 같은 범위로 오류 번호가 분류된다.
- 101 – 199 : 시스템 오류
- 201 – 299 : 호스트 변수 관련 오류
- 301 – 399 : 커서 관련 오류
- 401 – 499 : 일반 오류
- 701 – 799 : 현재 버전에서 지원하지 않는 기능
오류 분류
오류 분류는 오류가 어떤 전처리 과정에서 발생한 것인지를 나타낸다.
- E: 호스트 변수 선언부에서 오류가 발생한 경우
- L: 내장 SQL문 처리부에서 오류가 발생한 경우
- M: 매크로 처리 부분에서 오류가 발생한 경우
- H: 위 경우를 제외한 처리부에서 오류가 발생한 경우
오류 코드/메시지
101H – 199H
| 오류 코드 |
에러 메시지 |
| 101H |
File '<file name>' open error. |
| 102H |
FileSize(<file name>) is zero. |
| 103H |
The include file [<file name>] does not exist in the folder. |
| 104H |
File '<file name>' delete error. |
| 105H |
Memory allocation error. |
| 106H |
Latch initialize error. (<file name>:<line>) |
| 107H |
Latch read error. (<file name>:<line>) |
| 108H |
Latch release error. (<file name>:<line>) |
| 109H |
Latch write error. (<file name>:<line>) |
| 110H |
Latch destroy error. (<file name>:<line>) |
| 111H |
File close error. |
| 112H |
File <file name> write error. |
201E – 299E
| 오류 코드 |
에러 메시지 |
| 201E |
C-type Comment is not closed. |
| 202E |
The structure name <name> is unknown. |
| 203E |
The structure name <name> is a duplicate. |
| 204E |
The symbol name <name> cannot be added to the symbol table. |
| 205E |
The symbol name exceeds the maximum length. [<name>] |
| 206E |
Redefinition of '<name>'. |
| 207E |
Unknown type '<name>'. |
| 208E |
Invalid scope depth [<depth>]. |
| 209E |
Inconsistent brace count. |
| 210E |
Inconsistent parenthesis count error. |
| 211E |
The nested structure exceeds the maximum possible depth. |
| 212E |
VARCHAR declarations are not permitted in #include files. |
301L – 399L
| 오류 코드 |
에러 메시지 |
| 301L |
The C include file can't contain embedded SQL statements. |
| 302L |
EXEC SQL END DECLARE SECTION does not exist. |
| 303L |
EXEC SQL BEGIN DECLARE SECTION does not exist. |
| 304L |
EXEC SQL END ARGUMENT SECTION does not exist. |
| 305L |
EXEC SQL BEGIN ARGUMENT SECTION does not exist. |
| 306L |
Unterminated string error. |
| 307L |
The connection name [<name>] is too long. (max length is 50) |
| 308L |
The cursor name [<name>] is too long. (max length is 50) |
| 309L |
Statement name [<name>] is too long. (max length is 50) |
| 310L |
The number of FOR loop iterations must be greater than zero. |
| 311L |
The host variable [<name>] is unknown. |
| 312L |
The host variable in a FREE LOB statement must be a LOB locator. |
| 313L |
Unterminated embedded SQL statement. |
| 314L |
The indicator variable [<name>] should be of type SQLLEN or a compatible type. |
| 315L |
Two or more arrays of structures are bound to host variables in the same statement. |
401M – 499M
| 오류 코드 |
에러 메시지 |
| 401M |
An unknown macro is too long. (>2k) |
| 402M |
Macro #if statement syntax error |
| 403M |
Macro #elif statement syntax error |
| 404M |
Macro #elif statement sequence error |
| 405M |
Macro #else statement sequence error |
| 406M |
Macro #endif statement sequence error |
| 407M |
An empty char constant cannot be used with an #if macro expression. |
| 408M |
Include files are nested too deeply. (maximum <0%s>) |
| 409M |
No #endif error. |
| 410M |
A closing parenthesis ')' is missing from the macro parameter list. |
| 411M |
Unknown macro name, or missing parenthesis after macro name. (<0%s>) |
| 412M |
Unterminated string error. |
501H – 599H
| 오류 코드 |
에러 메시지 |
| 501H |
<option name> option is repeated |
| 502H |
Option string <option string> is too long. |
| 503H |
The -mt and -sea options cannot be used together. |
| 504H |
Input file must be a form of '*.sc'. |
| 505H |
Unknown embedded SQL statement type. |
701L – 799L
| 오류 코드 |
에러 메시지 |
| 701L |
No CURSOR SENSITIVITY options are supported yet. |
| 702L |
No CURSOR INSENSITIVITY options are supported yet. |
| 703L |
No CURSOR ASENSITIVITY options are supported yet. |
| 704L |
WITH HOLD option is not supported yet. |
| 705L |
WITH RETURN option is not supported yet. |
| 706L |
READ ONLY option does is supported yet. |
| 707L |
ALTER COMPACT option is not supported yet. |