부록 A: ODBC 오류 코드

이 항목에서는 ODBC 3의 SQLSTATE 값에 대해 설명합니다.x. ODBC 3에 대한 자세한 내용을 보려면x SQLSTATE 값은 SQLSTATE 매핑을 참조 하세요.

SQLGetDiagRec 또는 SQLGetDiagField 는 Open Group Data Management: 구조적 쿼리 언어(SQL), 버전 2 (1995년 3월)에 정의된 대로 SQLSTATE 값을 반환합니다. SQLSTATE 값은 5자를 포함하는 문자열입니다. 다음 표에서는 드라이버가 SQLGetDiagRec에 대해 반환할 수 있는 SQLSTATE 값을 나열합니다.

SQLSTATE에 대해 반환되는 문자열 값은 2자 클래스 값과 3자 서브클래스 값으로 구성됩니다. 클래스 값 "01"은 경고를 나타내며 SQL_SUCCESS_WITH_INFO 반환 코드와 함께 제공됩니다. "IM" 클래스를 제외한 "01" 이외의 클래스 값은 오류를 나타내며 반환 값 SQL_ERROR 함께 제공됩니다. "IM" 클래스는 ODBC 자체의 구현에서 파생되는 경고 및 오류와 관련이 있습니다. 모든 클래스의 하위 클래스 값 "000"은 해당 SQLSTATE에 대한 하위 클래스가 없음을 나타냅니다. 클래스 및 하위 클래스 값의 할당은 SQL-92에 의해 정의됩니다.

참고 항목

함수의 성공적인 실행은 일반적으로 SQL_SUCCESS 반환 값으로 표시되지만 SQLSTATE 00000도 성공을 나타냅니다.

SQLSTATE Error 에서 반환할 수 있습니다.
01000 일반 경고 다음을 제외한 모든 ODBC 함수:

SQLError

SQLGetDiagField

SQLGetDiagRec
01001 커서 작업 충돌 SQLExecDirect

SQLExecute

SQLParamData

Sqlsetpos
01002 연결 끊기 오류 SQLDisconnect
01003 set 함수에서 NULL 값 제거 SQLExecDirect

SQLExecute

SQLParamData
01004 문자열 데이터, 오른쪽 잘림 SQLBrowseConnect

SQLBulkOperations

SQLColAttribute

SQLDataSources

SQLDescribeCol

SQLDriverConnect

SQLDrivers

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetConnectAttr

SQLGetCursorName

Sqlgetdata

SQLGetDescField

SQLGetDescRec

SQLGetEnvAttr

Sqlgetinfo

SQLGetStmtAttr

SQLNative

Sql SQLParamData

Sqlputdata

SQLSetCursorName
01006 권한이 취소되지 않음 SQLExecDirect

SQLExecute

SQLParamData
01007 권한이 부여되지 않음 SQLExecDirect

SQLExecute

SQLParamData
01S00 잘못된 연결 문자열 특성 SQLBrowseConnect

SQLDriverConnec
01S01 행의 오류 SQLBulkOperations

SQLExtendedFetch

Sqlsetpos
01S02 옵션 값이 변경됨 SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

SQLSetConnectAttr

SQLSetDescField

SQLSetEnvAttr

SQLSetStmtAttr
01S06 결과 집합이 첫 번째 행 집합을 반환하기 전에 페치 시도 SQLExtendedFetch

SQLFetchScroll
01S07 분수 잘림 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlgetdata

SQLParamData

Sqlsetpos
01S08 파일 DSN을 저장하는 동안 오류가 발생했습니다. SQLDriverConnect
01S09 잘못된 키워드 SQLDriverConnect
07001 잘못된 매개 변수 수 SQLExecDirect

SQLExecute
07002 COUNT 필드가 잘못되었습니다. SQLExecDirect

SQLExecute

SQLParamData
07005 커서 사양이 아닌 준비된 문 SQLColAttribute

SQLDescribeCol
07006 제한된 데이터 형식 특성 위반 Sqlbindcol

SQLBindParameter

SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlgetdata

SQLParamData

Sqlputdata

Sqlsetpos
07009 설명자 인덱스가 잘못되었습니다. Sqlbindcol

SQLBindParameter

SQLBulkOperations

SQLColAttribute

SQLDescribeCol

SQLDescribeParam

SQLFetch

SQLFetchScroll

Sqlgetdata

SQLGetDescField

SQLGetDescRec

SQLParamData

SQLSetDescField

SQLSetDescRecSQLSetPos
07S01 기본 매개 변수를 잘못 사용했습니다. SQLExecDirect

SQLExecute

SQLParamData

Sqlputdata
08001 클라이언트가 연결을 설정할 수 없음 SQLBrowseConnect

SQLConnect

SQLDriverConnect
08002 사용 중인 연결 이름 SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLSetConnectAttr
08003 연결이 열리지 않음 SQLAllocHandle

SQLDisconnect

SQLEndTran

SQLGetConnectAttr

Sqlgetinfo

SQLNativeSql

SQLSetConnectAttr
08004 서버에서 연결을 거부했습니다. SQLBrowseConnect

SQLConnect

SQLDriverConnect
08007 트랜잭션 중 연결 실패 SQLEndTran
08S01 통신 링크 실패 SQLBrowseConnect

SQLColumnPrivileges

SQLColumns

SQLConnect

SQLCopyDesc

SQLDescribeCol

SQLDescribeParam

SQLDriverConnect

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetConnectAttr

Sqlgetdata

SQLGetDescField

SQLGetDescRec

SQLGetFunctions

Sqlgetinfo

SQLGetTypeInfo

SQLMoreResults

SQLNativeSql

SQLNumParams

SQLNumResultCols

SQLParamData

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

Sqlputdata

SQLSetConnectAttr

SQLSetDescField

SQLSetDescRec

SQLSetEnvAttr

SQLSetStmtAttr

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
21S01 값 삽입 목록이 열 목록과 일치하지 않음 SQLExecDirect

SQLPrepare
21S02 파생 테이블의 정도가 열 목록과 일치하지 않음 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

Sqlsetpos
22001 문자열 데이터, 오른쪽 잘림 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLParamData

Sqlputdata

SQLSetDescField

Sqlsetpos
22002 표시기 변수가 필요하지만 제공되지 않음 SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlgetdata

SQLParamData
22003 숫자 값이 범위를 벗어났습니다. SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlgetdata

Sqlgetinfo

SQLParamData

Sqlputdata

Sqlsetpos
22007 날짜/시간 형식이 잘못되었습니다. SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlgetdata

SQLParamData

Sqlputdata

Sqlsetpos
22008 날짜/시간 필드 오버플로 SQLBulkOperations

SQLExecDirect

QLParamData

Sqlputdata
22012 0으로 나누기 SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlgetdata

Sqlputdata
22015 간격 필드 오버플로 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlgetdata

SQLParamData

Sqlputdata

Sqlsetpos
22018 캐스트 사양에 잘못된 문자 값 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlgetdata

SQLParamData

Sqlputdata

Sqlsetpos
22019 잘못된 이스케이프 문자 SQLExecDirect

SQLExecute

SQLPrepare
22025 잘못된 이스케이프 시퀀스 SQLExecDirect

SQLExecute

SQLPrepare
22026 문자열 데이터, 길이 불일치 SQLParamData
23000 무결성 제약 조건 위반 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

Sqlsetpos
24000 커서 상태가 잘못되었습니다. SQLBulkOperations

SQLCloseCursor

SQLColumnPrivileges

SQLColumns

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLForeignKeys

Sqlgetdata

SQLGetStmtAttr

SQLGetTypeInfo

SQLNativeSql

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLSetConnectAttr

SQLSetCursorName

Sqlsetpos

SQLSetStmtAttr

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
25000 잘못된 트랜잭션 상태 SQLDisconnect
25S01 트랜잭션 상태 SQLEndTran
25S02 트랜잭션이 여전히 활성 상태입니다. SQLEndTran
25S03 트랜잭션 롤백 SQLEndTran
28000 잘못된 권한 부여 사양 SQLBrowseConnect

SQLConnect

SQLDriverConnect
34000 커서 이름이 잘못되었습니다. SQLExecDirect

SQLPrepare

SQLSetCursorName
3C000 중복 커서 이름 SQLSetCursorName
3D000 카탈로그 이름이 잘못되었습니다. SQLExecDirect

SQLPrepare

SQLSetConnectAttr
3F000 잘못된 스키마 이름 SQLExecDirect

SQLPrepare
40001 Serialization 실패 SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLEndTran

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetTypeInfo

SQLMoreResults

SQLParamData

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

Sqlsetpos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
40002 무결성 제약 조건 위반 SQLEndTran
40003 문 완성을 알 수 없음 SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetTypeInfo

SQLMoreResults

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLParamData

Sqlsetpos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
42000 구문 오류 또는 액세스 위반 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

Sqlsetpos
42S01 기본 테이블 또는 뷰가 이미 있음 SQLExecDirect

SQLPrepare
42S02 기본 테이블 또는 뷰를 찾을 수 없음 SQLExecDirect

SQLPrepare
42S11 인덱스가 이미 있음 SQLExecDirect

SQLPrepare
42S12 인덱스 찾을 수 없음 SQLExecDirect

SQLPrepare
42S21 열이 이미 있음 SQLExecDirect

SQLPrepare
42S22 열을 찾을 수 없음 SQLExecDirect

SQLPrepare
44000 WITH CHECK OPTION 위반 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

Sqlsetpos
HY000 일반 오류 다음을 제외한 모든 ODBC 함수:

SQLError

SQLGetDiagField

SQLGetDiagRec
HY001 메모리 할당 오류 다음을 제외한 모든 ODBC 함수:

SQLError

SQLGetDiagField

SQLGetDiagRec
HY003 잘못된 애플리케이션 버퍼 유형 Sqlbindcol

SQLBindParameter

Sqlgetdata
HY004 잘못된 SQL 데이터 형식 SQLBindParameter

SQLGetTypeInfo
HY007 연결된 문이 준비되지 않았습니다. SQLCopyDesc

SQLGetDescField

SQLGetDescRec
HY008 작업이 취소됨 비동기적으로 처리할 수 있는 모든 ODBC 함수:

SQLBrowseConnect

SQLBulkOperations

SQLColAttribute

SQLColumnPrivileges

SQLColumns

SQLConnect

SQLDescribeCol

SQLDescribeParam

SQLDisconnect

SQLDriverConnect

SQLEndTran

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLForeignKeys

Sqlgetdata

SQLGetTypeInfo

SQLMoreResults

SQLNumParams

SQLNumResultCols

SQLParamData

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

Sqlputdata

SQLSetConnectAttr

Sqlsetpos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
HY009 null 포인터를 잘못 사용했습니다. SQLAllocHandle

SQLBindParameter

SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLExecDirect

SQLForeignKeys

SQLGetCursorName

Sqlgetdata

SQLGetFunctions

SQLNativeSql

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

Sqlputdata

SQLSetConnectAttr

SQLSetCursorName

SQLSetEnvAttr

SQLSetStmtAttr

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
HY010 함수 시퀀스 오류 SQLAllocHandle

Sqlbindcol

SQLBindParameter

SQLBulkOperations

SQLCloseCursor

SQLColAttribute

SQLColumnPrivileges

SQLColumns

SQLCopyDesc

SQLDescribeCol

SQLDescribeParam

SQLDisconnect

SQLEndTran

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLFreeHandle

SQLFreeStmt

SQLGetConnectAttr

SQLGetCursorName

Sqlgetdata

SQLGetDescField

SQLGetDescRec

SQLGetFunctions

SQLGetStmtAttr

SQLGetTypeInfo

SQLMoreResults

SQLNumParams

SQLNumResultCols

SQLParamData

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

Sqlputdata

SQLRowCount

SQLSetConnectAttr

SQLSetCursorName

SQLSetDescField

SQLSetEnvAttr

SQLSetDescRec

Sqlsetpos

SQLSetStmtAttr

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
HY011 지금은 특성을 설정할 수 없습니다. SQLBulkOperations

SQLParamData

QLSetPos

SQLSetStmtAttr
HY012 잘못된 트랜잭션 작업 코드 SQLEndTran
HY013 메모리 관리 오류 다음을 제외한 모든 ODBC 함수:

SQLGetDiagField

SQLGetDiagRec
HY014 초과된 핸들 수에 대한 제한 SQLAllocHandle
HY015 사용할 수 있는 커서 이름 없음 SQLGetCursorName
HY016 구현 행 설명자를 수정할 수 없음 SQLCopyDesc

SQLSetDescField

SQLSetDescRec
HY017 자동으로 할당된 설명자 핸들을 잘못 사용했습니다. SQLFreeHandle

SQLSetStmtAttr
HY018 서버에서 취소 요청을 거부했습니다. SQLCancel
HY019 문자가 아닌 데이터와 이진 데이터가 아닌 데이터로 전송됨 Sqlputdata
HY020 null 값을 연결하려고 시도합니다. Sqlputdata
HY021 일관되지 않은 설명자 정보 SQLBindParameter

SQLCopyDesc

SQLGetDescField

SQLSetDescField

SQLSetDescRec
HY024 잘못된 특성 값 SQLSetConnectAttr

SQLSetEnvAttr

SQLSetStmtAttr
HY090 잘못된 문자열 또는 버퍼 길이 Sqlbindcol

SQLBindParameter

SQLBrowseConnect

SQLBulkOperations

SQLColAttribute

SQLColumnPrivileges

SQLColumns

SQLConnect

SQLDataSources

SQLDescribeCol

SQLDriverConnect

SQLDrivers

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetConnectAttr

SQLGetCursorName

Sqlgetdata

SQLGetDescField

Sqlgetinfo

SQLGetStmtAttr

SQLNativeSql

SQLParamData

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

Sqlputdata

SQLSetConnectAttr

SQLSetCursorName

SQLSetDescField

SQLSetDescRec

SQLSetEnvAttr

SQLSetStmtAttr

Sqlsetpos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
HY091 설명자 필드 식별자가 잘못되었습니다. SQLColAttribute

SQLGetDescField

SQLSetDescField
HY092 잘못된 특성/옵션 식별자 SQLAllocHandle

QLBulkOperations

SQLCopyDesc

SQLDriverConnect

SQLEndTran

SQLFreeStmt

SQLGetConnectAttr

SQLGetEnvAttr

QLParamData

SQLSetConnectAttr

SQLSetDescField

SQLSetEnvAttr

Sqlsetpos

SQLSetStmtAttr
HY095 함수 형식이 범위를 벗어났습니다. SQLGetFunctions
HY096 잘못된 정보 유형 Sqlgetinfo
HY097 열 형식이 범위를 벗어났습니다. SQLSpecialColumns
HY098 범위 유형이 범위를 벗어났습니다. SQLSpecialColumns
HY099 Nullable 형식이 범위를 벗어났습니다. SQLSpecialColumns
HY100 고유성 옵션 유형이 범위를 벗어났습니다. SQLStatistics
HY101 정확도 옵션 유형이 범위를 벗어났습니다. SQLStatistics
HY103 잘못된 검색 코드 SQLDataSources

SQLDrivers
HY104 전체 자릿수 또는 배율 값이 잘못되었습니다. SQLBindParameter
HY105 잘못된 매개 변수 형식 SQLBindParameter

SQLExecDirect

SQLExecute

SQLParamData

SQLSetDescField
HY106 페치 형식이 범위를 벗어났습니다. SQLExtendedFetch

SQLFetchScroll
HY107 행 값이 범위를 벗어났습니다. SQLExtendedFetch

SQLFetch

SQLFetchScroll

Sqlsetpos
HY109 커서 위치가 잘못되었습니다. SQLExecDirect

SQLExecute

Sqlgetdata

SQLGetStmtAttr

SQLNativeSql

SQLParamData

Sqlsetpos
HY110 드라이버 완료가 잘못되었습니다. SQLDriverConnect
HY111 책갈피 값이 잘못되었습니다. SQLExtendedFetch

SQLFetchScroll
HYC00 선택적 기능이 구현되지 않음 Sqlbindcol

SQLBindParameter

SQLBulkOperations

SQLColAttribute

SQLColumnPrivileges

SQLColumns

SQLDriverConnect

SQLEndTran

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetConnectAttr

Sqlgetdata

SQLGetEnvAttr

Sqlgetinfo

SQLGetStmtAttr

SQLGetTypeInfo

SQLParamData

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLSetConnectAttr

SQLSetEnvAttr

Sqlsetpos

SQLSetStmtAttr

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
HYT00 시간 제한 만료됨 SQLBrowseConnect

SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLConnect

SQLDriverConnect

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLForeignKeys

SQLGetTypeInfo

SQLParamData

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

Sqlsetpos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
HYT01 연결 제한 시간이 만료됨 다음을 제외한 모든 ODBC 함수:

SQLDrivers

SQLDataSources

SQLGetEnvAttr

SQLSetEnvAttr
IM001 드라이버는 이 함수를 지원하지 않습니다. 다음을 제외한 모든 ODBC 함수:

SQLAllocHandle

SQLDataSources

SQLDrivers

SQLFreeHandle

SQLGetFunctions
IM002 데이터 원본 이름을 찾을 수 없고 기본 드라이버가 지정되지 않았습니다. SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM003 지정된 드라이버를 로드할 수 없습니다. SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM004 SQL_HANDLE_ENV 드라이버의 SQLAllocHandle 실패 SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM005 SQL_HANDLE_DBC 드라이버의 SQLAllocHandle 이 실패했습니다. SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM006 드라이버의 SQLSetConnectAttr 실패 SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM007 데이터 원본 또는 드라이버가 지정되지 않았습니다. 대화 금지됨 SQLDriverConnect
IM008 대화 상자 실패 SQLDriverConnect
IM009 번역 DLL을 로드할 수 없음 SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLSetConnectAttr
IM010 데이터 원본 이름이 너무 깁니다. SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM011 드라이버 이름이 너무 깁니다. SQLBrowseConnect

SQLDriverConnect
IM012 DRIVER 키워드 구문 오류 SQLBrowseConnect

SQLDriverConnect
IM013 추적 파일 오류 모든 ODBC 함수.
IM014 파일 DSN의 이름이 잘못되었습니다. SQLDriverConnect
IM015 손상된 파일 데이터 원본 SQLDriverConnect