Appendix A: ODBC Error Codes

This topic discusses SQLSTATE values for ODBC 3.x. For more information on ODBC 3.x SQLSTATE values, see SQLSTATE Mappings.

SQLGetDiagRec or SQLGetDiagField returns SQLSTATE values as defined by Open Group Data Management: Structured Query Language (SQL), Version 2 (March 1995). SQLSTATE values are strings that contain five characters. The following table lists SQLSTATE values that a driver can return for SQLGetDiagRec.

The character string value returned for an SQLSTATE consists of a two-character class value followed by a three-character subclass value. A class value of "01" indicates a warning and is accompanied by a return code of SQL_SUCCESS_WITH_INFO. Class values other than "01," except for the class "IM," indicate an error and are accompanied by a return value of SQL_ERROR. The class "IM" is specific to warnings and errors that derive from the implementation of ODBC itself. The subclass value "000" in any class indicates that there is no subclass for that SQLSTATE. The assignment of class and subclass values is defined by SQL-92.

Note

Although successful execution of a function is normally indicated by a return value of SQL_SUCCESS, the SQLSTATE 00000 also indicates success.

SQLSTATE Error Can be returned from
01000 General warning All ODBC functions except:

SQLError

SQLGetDiagField

SQLGetDiagRec
01001 Cursor operation conflict SQLExecDirect

SQLExecute

SQLParamData

SQLSetPos
01002 Disconnect error SQLDisconnect
01003 NULL value eliminated in set function SQLExecDirect

SQLExecute

SQLParamData
01004 String data, right-truncated 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 Privilege not revoked SQLExecDirect

SQLExecute

SQLParamData
01007 Privilege not granted SQLExecDirect

SQLExecute

SQLParamData
01S00 Invalid connection string attribute SQLBrowseConnect

SQLDriverConnec
01S01 Error in row SQLBulkOperations

SQLExtendedFetch

SQLSetPos
01S02 Option value changed SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

SQLSetConnectAttr

SQLSetDescField

SQLSetEnvAttr

SQLSetStmtAttr
01S06 Attempt to fetch before the result set returned the first rowset SQLExtendedFetch

SQLFetchScroll
01S07 Fractional truncation SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLSetPos
01S08 Error saving File DSN SQLDriverConnect
01S09 Invalid keyword SQLDriverConnect
07001 Wrong number of parameters SQLExecDirect

SQLExecute
07002 COUNT field incorrect SQLExecDirect

SQLExecute

SQLParamData
07005 Prepared statement not a cursor-specification SQLColAttribute

SQLDescribeCol
07006 Restricted data type attribute violation SQLBindCol

SQLBindParameter

SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLPutData

SQLSetPos
07009 Invalid descriptor index SQLBindCol

SQLBindParameter

SQLBulkOperations

SQLColAttribute

SQLDescribeCol

SQLDescribeParam

SQLFetch

SQLFetchScroll

SQLGetData

SQLGetDescField

SQLGetDescRec

SQLParamData

SQLSetDescField

SQLSetDescRecSQLSetPos
07S01 Invalid use of default parameter SQLExecDirect

SQLExecute

SQLParamData

SQLPutData
08001 Client unable to establish connection SQLBrowseConnect

SQLConnect

SQLDriverConnect
08002 Connection name in use SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLSetConnectAttr
08003 Connection not open SQLAllocHandle

SQLDisconnect

SQLEndTran

SQLGetConnectAttr

SQLGetInfo

SQLNativeSql

SQLSetConnectAttr
08004 Server rejected the connection SQLBrowseConnect

SQLConnect

SQLDriverConnect
08007 Connection failure during transaction SQLEndTran
08S01 Communication link failure 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 Insert value list does not match column list SQLExecDirect

SQLPrepare
21S02 Degree of derived table does not match column list SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

SQLSetPos
22001 String data, right-truncated SQLBulkOperations

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLParamData

SQLPutData

SQLSetDescField

SQLSetPos
22002 Indicator variable required but not supplied SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData
22003 Numeric value out of range SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLGetInfo

SQLParamData

SQLPutData

SQLSetPos
22007 Invalid datetime format SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLPutData

SQLSetPos
22008 Datetime field overflow SQLBulkOperations

SQLExecDirect

QLParamData

SQLPutData
22012 Division by zero SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLPutData
22015 Interval field overflow SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLPutData

SQLSetPos
22018 Invalid character value for cast specification SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLPutData

SQLSetPos
22019 Invalid escape character SQLExecDirect

SQLExecute

SQLPrepare
22025 Invalid escape sequence SQLExecDirect

SQLExecute

SQLPrepare
22026 String data, length mismatch SQLParamData
23000 Integrity constraint violation SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLSetPos
24000 Invalid cursor state 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 Invalid transaction state SQLDisconnect
25S01 Transaction state SQLEndTran
25S02 Transaction is still active SQLEndTran
25S03 Transaction is rolled back SQLEndTran
28000 Invalid authorization specification SQLBrowseConnect

SQLConnect

SQLDriverConnect
34000 Invalid cursor name SQLExecDirect

SQLPrepare

SQLSetCursorName
3C000 Duplicate cursor name SQLSetCursorName
3D000 Invalid catalog name SQLExecDirect

SQLPrepare

SQLSetConnectAttr
3F000 Invalid schema name SQLExecDirect

SQLPrepare
40001 Serialization failure SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLEndTran

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetTypeInfo

SQLMoreResults

SQLParamData

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLSetPos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
40002 Integrity constraint violation SQLEndTran
40003 Statement completion unknown SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetTypeInfo

SQLMoreResults

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLParamData

SQLSetPos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
42000 Syntax error or access violation SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

SQLSetPos
42S01 Base table or view already exists SQLExecDirect

SQLPrepare
42S02 Base table or view not found SQLExecDirect

SQLPrepare
42S11 Index already exists SQLExecDirect

SQLPrepare
42S12 Index not found SQLExecDirect

SQLPrepare
42S21 Column already exists SQLExecDirect

SQLPrepare
42S22 Column not found SQLExecDirect

SQLPrepare
44000 WITH CHECK OPTION violation SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLSetPos
HY000 General error All ODBC functions except:

SQLError

SQLGetDiagField

SQLGetDiagRec
HY001 Memory allocation error All ODBC functions except:

SQLError

SQLGetDiagField

SQLGetDiagRec
HY003 Invalid application buffer type SQLBindCol

SQLBindParameter

SQLGetData
HY004 Invalid SQL data type SQLBindParameter

SQLGetTypeInfo
HY007 Associated statement is not prepared SQLCopyDesc

SQLGetDescField

SQLGetDescRec
HY008 Operation canceled All ODBC functions that can be processed asynchronously:

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 Invalid use of null pointer 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 Function sequence error 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 Attribute cannot be set now SQLBulkOperations

SQLParamData

QLSetPos

SQLSetStmtAttr
HY012 Invalid transaction operation code SQLEndTran
HY013 Memory management error All ODBC functions except:

SQLGetDiagField

SQLGetDiagRec
HY014 Limit on the number of handles exceeded SQLAllocHandle
HY015 No cursor name available SQLGetCursorName
HY016 Cannot modify an implementation row descriptor SQLCopyDesc

SQLSetDescField

SQLSetDescRec
HY017 Invalid use of an automatically allocated descriptor handle SQLFreeHandle

SQLSetStmtAttr
HY018 Server declined cancel request SQLCancel
HY019 Non-character and non-binary data sent in pieces SQLPutData
HY020 Attempt to concatenate a null value SQLPutData
HY021 Inconsistent descriptor information SQLBindParameter

SQLCopyDesc

SQLGetDescField

SQLSetDescField

SQLSetDescRec
HY024 Invalid attribute value SQLSetConnectAttr

SQLSetEnvAttr

SQLSetStmtAttr
HY090 Invalid string or buffer length 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 Invalid descriptor field identifier SQLColAttribute

SQLGetDescField

SQLSetDescField
HY092 Invalid attribute/option identifier SQLAllocHandle

QLBulkOperations

SQLCopyDesc

SQLDriverConnect

SQLEndTran

SQLFreeStmt

SQLGetConnectAttr

SQLGetEnvAttr

QLParamData

SQLSetConnectAttr

SQLSetDescField

SQLSetEnvAttr

SQLSetPos

SQLSetStmtAttr
HY095 Function type out of range SQLGetFunctions
HY096 Invalid information type SQLGetInfo
HY097 Column type out of range SQLSpecialColumns
HY098 Scope type out of range SQLSpecialColumns
HY099 Nullable type out of range SQLSpecialColumns
HY100 Uniqueness option type out of range SQLStatistics
HY101 Accuracy option type out of range SQLStatistics
HY103 Invalid retrieval code SQLDataSources

SQLDrivers
HY104 Invalid precision or scale value SQLBindParameter
HY105 Invalid parameter type SQLBindParameter

SQLExecDirect

SQLExecute

SQLParamData

SQLSetDescField
HY106 Fetch type out of range SQLExtendedFetch

SQLFetchScroll
HY107 Row value out of range SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLSetPos
HY109 Invalid cursor position SQLExecDirect

SQLExecute

SQLGetData

SQLGetStmtAttr

SQLNativeSql

SQLParamData

SQLSetPos
HY110 Invalid driver completion SQLDriverConnect
HY111 Invalid bookmark value SQLExtendedFetch

SQLFetchScroll
HYC00 Optional feature not implemented 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 Timeout expired SQLBrowseConnect

SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLConnect

SQLDriverConnect

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLForeignKeys

SQLGetTypeInfo

SQLParamData

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLSetPos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
HYT01 Connection timeout expired All ODBC functions except:

SQLDrivers

SQLDataSources

SQLGetEnvAttr

SQLSetEnvAttr
IM001 Driver does not support this function All ODBC functions except:

SQLAllocHandle

SQLDataSources

SQLDrivers

SQLFreeHandle

SQLGetFunctions
IM002 Data source name not found and no default driver specified SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM003 Specified driver could not be loaded SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM004 Driver's SQLAllocHandle on SQL_HANDLE_ENV failed SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM005 Driver's SQLAllocHandle on SQL_HANDLE_DBC failed SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM006 Driver's SQLSetConnectAttr failed SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM007 No data source or driver specified; dialog prohibited SQLDriverConnect
IM008 Dialog failed SQLDriverConnect
IM009 Unable to load translation DLL SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLSetConnectAttr
IM010 Data source name too long SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM011 Driver name too long SQLBrowseConnect

SQLDriverConnect
IM012 DRIVER keyword syntax error SQLBrowseConnect

SQLDriverConnect
IM013 Trace file error All ODBC functions.
IM014 Invalid name of File DSN SQLDriverConnect
IM015 Corrupt file data source SQLDriverConnect