ODBC Error Codes
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
code 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 SQLNativeSql SQLParamData SQLPutData SQLSetCursorName |
01006 | Privilege not revoked
| SQLExecDirect
SQLExecute SQLParamData |
01007 | Privilege not granted
| SQLExecDirect
SQLExecute SQLParamData |
01S00 | Invalid connection string attribute
| SQLBrowseConnect
SQLDriverConnect |
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
|
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 SQLFetch SQLFetchScroll SQLGetData SQLGetDescField SQLGetDescRec SQLParamData SQLSetDescField SQLSetDescRec SQLSetPos |
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 does not exist
| 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 SQLExecute SQLParamData SQLPutData |
22012 | Division by zero
| SQLExecDirect
SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData 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 |
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:
SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLDescribeCol SQLDescribeParam SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetData SQLGetTypeInfo SQLMoreResults SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData 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 SQLSetDescRec SQLSetPos SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY011 | Attribute cannot be set now
| SQLBulkOperations
SQLParamData SQLSetConnectAttr SQLSetEnvAttr SQLSetPos 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
SQLBulkOperations SQLCopyDesc SQLDriverConnect SQLEndTran SQLFreeStmt SQLGetConnectAttr SQLGetEnvAttr SQLGetStmtAttr SQLParamData SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetPos SQLSetStmtAttr |
HY093 | Invalid parameter number
| SQLDescribeParam
|
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
|