# SQLSTATE

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/SQLSTATE
> Markdown URL: https://mediated.wiki/source/SQLSTATE.md
> Source: https://en.wikipedia.org/wiki/SQLSTATE
> Source revision: 1346463395
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Programs calling a database that accords to the [SQL](/source/SQL) standard receive an indication of the success or failure of the call. This return code - which is called SQLSTATE - consists of 5 bytes. They are divided into two parts: the first and second bytes contain a **class** and the following three a **subclass**. Each class belongs to one of four **categories**: "S" denotes "Success" (class 00), "W" denotes "Warning" (class 01), "N" denotes "No data" (class 02), and "X" denotes "Exception" (all other classes).

- Real DBMSs are free to define additional values for SQLSTATE to handle those features that are beyond the standard. Such values must use one of the characters [I-Z] or [5-9] as the first byte of class (first byte of SQLSTATE) or subclass (third byte of SQLSTATE).
- In addition to SQLSTATE the SQL command GET DIAGNOSTICS offers more details about the last executed SQL command.
- In very early versions of the SQL standard the return code was called SQLCODE and used a different coding schema.

The following table lists the standard-conforming values - based on .[1] The table's last column shows the part of the standard that defines the row. If it is empty, the definition originates from part 2 *Foundation*.

SQLSTATE Cat. Class Class Text Subclass Subclass Text SQL part 00000 S 00 successful completion 000 01000 W 01 warning 000 01001 W 01 warning 001 cursor operation conflict 01002 W 01 warning 002 disconnect error 01003 W 01 warning 003 null value eliminated in set function 01004 W 01 warning 004 string data, right truncation 01005 W 01 warning 005 insufficient item descriptor areas 01006 W 01 warning 006 privilege not revoked 01007 W 01 warning 007 privilege not granted 01009 W 01 warning 009 search condition too long for information schema 0100A W 01 warning 00A query expression too long for information schema 0100B W 01 warning 00B default value too long for information schema 0100C W 01 warning 00C result sets returned 0100D W 01 warning 00D additional result sets returned 0100E W 01 warning 00E attempt to return too many result sets 0100F W 01 warning 00F statement too long for information schema 01010 W 01 warning 010 column cannot be mapped SQL/XML 01011 W 01 warning 011 SQL-Java path too long for information schema SQL/JRT 01012 W 01 warning 012 invalid number of conditions 0102F W 01 warning 02F array data, right truncation 02000 N 02 no data 000 02001 N 02 no data 001 no additional result sets returned 07000 X 07 dynamic SQL error 000 07001 X 07 dynamic SQL error 001 using clause does not match dynamic parameter specifications 07002 X 07 dynamic SQL error 002 using clause does not match target specifications 07003 X 07 dynamic SQL error 003 cursor specification cannot be executed 07004 X 07 dynamic SQL error 004 using clause required for dynamic parameters 07005 X 07 dynamic SQL error 005 prepared statement not a cursor specification 07006 X 07 dynamic SQL error 006 restricted data type attribute violation 07007 X 07 dynamic SQL error 007 using clause required for result fields 07008 X 07 dynamic SQL error 008 invalid descriptor count 07009 X 07 dynamic SQL error 009 invalid descriptor index 0700B X 07 dynamic SQL error 00B data type transform function violation 0700C X 07 dynamic SQL error 00C undefined DATA value 0700D X 07 dynamic SQL error 00D invalid DATA target 0700E X 07 dynamic SQL error 00E invalid LEVEL value 0700F X 07 dynamic SQL error 00F invalid DATETIME_INTERVAL_CODE 08000 X 08 connection exception 000 08001 X 08 connection exception 001 SQL-client unable to establish SQL-connection 08002 X 08 connection exception 002 connection name in use 08003 X 08 connection exception 003 connection does not exist 08004 X 08 connection exception 004 SQL-server rejected establishment of SQL-connection 08006 X 08 connection exception 006 connection failure 08007 X 08 connection exception 007 transaction resolution unknown 09000 X 09 triggered action exception 000 0A000 X 0A feature not supported 000 0A001 X 0A feature not supported 001 multiple server transactions 0D000 X 0D invalid target type specification 000 0E000 X 0E invalid schema name list specification 000 0F000 X 0F locator exception 000 0F001 X 0F locator exception 001 invalid specification 0K000 X 0K resignal when handler not active 000 SQL/PSM 0L000 X 0L invalid grantor 000 0M000 X 0M invalid SQL-invoked procedure reference 000 0N000 X 0N SQL/XML mapping error 000 SQL/XML 0N001 X 0N SQL/XML mapping error 001 unmappable XML name SQL/XML 0N002 X 0N SQL/XML mapping error 002 invalid XML character SQL/XML 0P000 X 0P invalid role specification 000 0S000 X 0S invalid transform group name specification 000 0T000 X 0T target table disagrees with cursor specification 000 0U000 X 0U attempt to assign to non-updatable column 000 0V000 X 0V attempt to assign to ordering column 000 0W000 X 0W prohibited statement encountered during trigger execution 000 0W001 X 0W prohibited statement encountered during trigger execution 001 modify table modified by data change delta table 0X000 X 0X invalid foreign server specification 000 SQL/MED 0Y000 X 0Y pass-through specific condition 000 SQL/MED 0Y001 X 0Y pass-through specific condition 001 invalid cursor option SQL/MED 0Y002 X 0Y pass-through specific condition 002 invalid cursor allocation SQL/MED 0Z000 X 0Z diagnostics exception 000 0Z001 X 0Z diagnostics exception 001 maximum number of stacked diagnostics areas exceeded 0Z002 X 0Z diagnostics exception 002 stacked diagnostics accessed without active handler SQL/PSM 10000 X 10 XQuery error 000 SQL/XML 20000 X 20 case not found for case statement 000 SQL/PSM 21000 X 21 cardinality violation 000 22000 X 22 data exception 000 22001 X 22 data exception 001 string data, right truncation 22002 X 22 data exception 002 null value, no indicator parameter 22003 X 22 data exception 003 numeric value out of range 22004 X 22 data exception 004 null value not allowed 22005 X 22 data exception 005 error in assignment 22006 X 22 data exception 006 invalid interval format 22007 X 22 data exception 007 invalid datetime format 22008 X 22 data exception 008 datetime field overflow 22009 X 22 data exception 009 invalid time zone displacement value 2200B X 22 data exception 00B escape character conflict 2200C X 22 data exception 00C invalid use of escape character 2200D X 22 data exception 00D invalid escape octet 2200E X 22 data exception 00E null value in array target 2200F X 22 data exception 00F zero-length character string 2200G X 22 data exception 00G most specific type mismatch 2200H X 22 data exception 00H sequence generator limit exceeded 2200J X 22 data exception 00J nonidentical notations with the same name SQL/XML 2200K X 22 data exception 00K nonidentical unparsed entities with the same name SQL/XML 2200L X 22 data exception 00L not an XML document SQL/XML 2200M X 22 data exception 00M invalid XML document SQL/XML 2200N X 22 data exception 00N invalid XML content SQL/XML 2200P X 22 data exception 00P interval value out of range 2200Q X 22 data exception 00Q multiset value overflow 2200R X 22 data exception 00R XML value overflow SQL/XML 2200S X 22 data exception 00S invalid comment SQL/XML 2200T X 22 data exception 00T invalid processing instruction SQL/XML 2200U X 22 data exception 00U not an XQuery document node SQL/XML 2200V X 22 data exception 00V invalid XQuery context item SQL/XML 2200W X 22 data exception 00W XQuery serialization error SQL/XML 22010 X 22 data exception 010 invalid indicator parameter value 22011 X 22 data exception 011 substring error 22012 X 22 data exception 012 division by zero 22013 X 22 data exception 013 invalid preceding or following size in window function 22014 X 22 data exception 014 invalid argument for NTILE function 22015 X 22 data exception 015 interval field overflow 22016 X 22 data exception 016 invalid argument for NTH_VALUE function 22017 X 22 data exception 017 invalid data specified for datalink SQL/MED 22018 X 22 data exception 018 invalid character value for cast 22019 X 22 data exception 019 invalid escape character 2201A X 22 data exception 01A null argument passed to datalink constructor SQL/MED 2201B X 22 data exception 01B invalid regular expression 2201C X 22 data exception 01C null row not permitted in table 2201D X 22 data exception 01D datalink value exceeds maximum length SQL/MED 2201E X 22 data exception 01E invalid argument for natural logarithm 2201F X 22 data exception 01F invalid argument for power function 2201G X 22 data exception 01G invalid argument for width bucket function 2201H X 22 data exception 01H invalid row version 2201J X 22 data exception 01J XQuery sequence cannot be validated SQL/XML 2201K X 22 data exception 01K XQuery document node cannot be validated SQL/XML 2201L X 22 data exception 01L no XML schema found SQL/XML 2201M X 22 data exception 01M element namespace not declared SQL/XML 2201N X 22 data exception 01N global element not declared SQL/XML 2201P X 22 data exception 01P no XML element with the specified QName SQL/XML 2201Q X 22 data exception 01Q no XML element with the specified namespace SQL/XML 2201R X 22 data exception 01R validation failure SQL/XML 2201S X 22 data exception 01S invalid Query regular expression 2201T X 22 data exception 01T invalid Query option flag 2201U X 22 data exception 01U attempt to replace a zero-length string 2201V X 22 data exception 01V invalid Query replacement string 2201W X 22 data exception 01W invalid row count in fetch first clause 2201X X 22 data exception 01X invalid row count in result offset clause 22021 X 22 data exception 021 character not in repertoire 22022 X 22 data exception 022 indicator overflow 22023 X 22 data exception 023 invalid parameter value 22024 X 22 data exception 024 unterminated C string 22025 X 22 data exception 025 invalid escape sequence 22026 X 22 data exception 026 string data, length mismatch 22027 X 22 data exception 027 trim error 22029 X 22 data exception 029 noncharacter in UCS string 2202A X 22 data exception 02A null value in field reference SQL/PSM 2202D X 22 data exception 02D null value substituted for mutator subject parameter 2202E X 22 data exception 02E array element error 2202F X 22 data exception 02F array data, right truncation 2202G X 22 data exception 02G invalid repeat argument in a sample clause 2202H X 22 data exception 02H invalid sample size 23000 X 23 integrity constraint violation 000 23001 X 23 integrity constraint violation 001 restrict violation 24000 X 24 invalid cursor state 000 25000 X 25 invalid transaction state 000 25001 X 25 invalid transaction state 001 active SQL-transaction 25002 X 25 invalid transaction state 002 branch transaction already active 25003 X 25 invalid transaction state 003 inappropriate access mode for branch transaction 25004 X 25 invalid transaction state 004 inappropriate isolation level for branch transaction 25005 X 25 invalid transaction state 005 no active SQL-transaction for branch transaction 25006 X 25 invalid transaction state 006 read-only SQL-transaction 25007 X 25 invalid transaction state 007 schema and data statement mixing not supported 25008 X 25 invalid transaction state 008 held cursor requires same isolation level 26000 X 26 invalid SQL statement name 000 27000 X 27 triggered data change violation 000 27001 X 27 triggered data change violation 001 modify table modified by data change delta table 28000 X 28 invalid authorization specification 000 2B000 X 2B dependent privilege descriptors still exist 000 2C000 X 2C invalid character set name 000 2D000 X 2D invalid transaction termination 000 2E000 X 2E invalid connection name 000 2F000 X 2F SQL routine exception 000 2F002 X 2F SQL routine exception 002 modifying SQL-data not permitted 2F003 X 2F SQL routine exception 003 prohibited SQL-statement attempted 2F004 X 2F SQL routine exception 004 reading SQL-data not permitted 2F005 X 2F SQL routine exception 005 function executed no return statement 2H000 X 2H invalid collation name 000 30000 X 30 invalid SQL statement identifier 000 33000 X 33 invalid SQL descriptor name 000 34000 X 34 invalid cursor name 000 35000 X 35 invalid condition number 000 36000 X 36 cursor sensitivity exception 000 36001 X 36 cursor sensitivity exception 001 request rejected 36002 X 36 cursor sensitivity exception 002 request failed 38000 X 38 external routine exception 000 38001 X 38 external routine exception 001 containing SQL not permitted 38002 X 38 external routine exception 002 modifying SQL-data not permitted 38003 X 38 external routine exception 003 prohibited SQL-statement attempted 38004 X 38 external routine exception 004 reading SQL-data not permitted 39000 X 39 external routine invocation exception 000 39004 X 39 external routine invocation exception 004 null value not allowed 3B000 X 3B savepoint exception 000 3B001 X 3B savepoint exception 001 invalid specification 3B002 X 3B savepoint exception 002 too many 3C000 X 3C ambiguous cursor name 000 3D000 X 3D invalid catalog name 000 3F000 X 3F invalid schema name 000 40000 X 40 transaction rollback 000 40001 X 40 transaction rollback 001 serialization failure 40002 X 40 transaction rollback 002 integrity constraint violation 40003 X 40 transaction rollback 003 statement completion unknown 40004 X 40 transaction rollback 004 triggered action exception 42000 X 42 syntax error or access rule violation 000 44000 X 44 with check option violation 000 45000 X 45 unhandled user-defined exception 000 SQL/PSM 46000 X 46 OLB-specific error 000 SQL/OLB 46001 X 46 Java DDL 001 invalid URL SQL/JRT 46002 X 46 Java DDL 002 invalid JAR name SQL/JRT 46003 X 46 Java DDL 003 invalid class deletion SQL/JRT 46005 X 46 Java DDL 005 invalid replacement SQL/JRT 4600A X 46 Java DDL 00A attempt to replace uninstalled JAR SQL/JRT 4600B X 46 Java DDL 00B attempt to remove uninstalled JAR SQL/JRT 4600C X 46 Java DDL 00C invalid JAR removal SQL/JRT 4600D X 46 Java DDL 00D invalid path SQL/JRT 4600E X 46 Java DDL 00E self-referencing path SQL/JRT 46102 X 46 Java DDL 102 invalid JAR name in path SQL/JRT 46103 X 46 Java DDL 103 unresolved class name SQL/JRT 46110 X 46 OLB-specific error 110 unsupported feature SQL/OLB 46120 X 46 OLB-specific error 120 invalid class declaration SQL/OLB 46121 X 46 OLB-specific error 121 invalid column name SQL/OLB 46122 X 46 OLB-specific error 122 invalid number of columns SQL/OLB 46130 X 46 OLB-specific error 130 invalid profile state SQL/OLB HW000 X HW datalink exception 000 SQL/MED HW001 X HW datalink exception 001 external file not linked SQL/MED HW002 X HW datalink exception 002 external file already linked SQL/MED HW003 X HW datalink exception 003 referenced file does not exist SQL/MED HW004 X HW datalink exception 004 invalid write token SQL/MED HW005 X HW datalink exception 005 invalid datalink construction SQL/MED HW006 X HW datalink exception 006 invalid write permission for update SQL/MED HW007 X HW datalink exception 007 referenced file not valid SQL/MED HV000 X HV FDW-specific condition 000 SQL/MED HV001 X HV FDW-specific condition 001 memory allocation error SQL/MED HV002 X HV FDW-specific condition 002 dynamic parameter value needed SQL/MED HV004 X HV FDW-specific condition 004 invalid data type SQL/MED HV005 X HV FDW-specific condition 005 column name not found SQL/MED HV006 X HV FDW-specific condition 006 invalid data type descriptors SQL/MED HV007 X HV FDW-specific condition 007 invalid column name SQL/MED HV008 X HV FDW-specific condition 008 invalid column number SQL/MED HV009 X HV FDW-specific condition 009 invalid use of null pointer SQL/MED HV00A X HV FDW-specific condition 00A invalid string format SQL/MED HV00B X HV FDW-specific condition 00B invalid handle SQL/MED HV00C X HV FDW-specific condition 00C invalid option index SQL/MED HV00D X HV FDW-specific condition 00D invalid option name SQL/MED HV00J X HV FDW-specific condition 00J option name not found SQL/MED HV00K X HV FDW-specific condition 00K reply handle SQL/MED HV00L X HV FDW-specific condition 00L unable to create execution SQL/MED HV00M X HV FDW-specific condition 00M unable to create reply SQL/MED HV00N X HV FDW-specific condition 00N unable to establish connection SQL/MED HV00P X HV FDW-specific condition 00P no schemas SQL/MED HV00Q X HV FDW-specific condition 00Q schema not found SQL/MED HV00R X HV FDW-specific condition 00R table not found SQL/MED HV010 X HV FDW-specific condition 010 function sequence error SQL/MED HV014 X HV FDW-specific condition 014 limit on number of handles exceeded SQL/MED HV021 X HV FDW-specific condition 021 inconsistent descriptor information SQL/MED HV024 X HV FDW-specific condition 024 invalid attribute value SQL/MED HV090 X HV FDW-specific condition 090 invalid string length or buffer length SQL/MED HV091 X HV FDW-specific condition 091 invalid descriptor field identifier SQL/MED style="height:0.5em; background: #eaecf0;" colspan="7" | HY000 X HY CLI-specific condition 000 SQL/CLI HY??? X HY CLI-specific condition dynamic parameter value needed SQL/CLI HY??? X HY CLI-specific condition invalid handle SQL/CLI HY001 X HY CLI-specific condition 001 memory allocation error SQL/CLI HY003 X HY CLI-specific condition 003 invalid data type in application descriptor SQL/CLI HY004 X HY CLI-specific condition 004 invalid data type SQL/CLI HY007 X HY CLI-specific condition 007 associated statement is not prepared SQL/CLI HY008 X HY CLI-specific condition 008 operation canceled SQL/CLI HY009 X HY CLI-specific condition 009 invalid use of null pointer SQL/CLI HY010 X HY CLI-specific condition 010 function sequence error SQL/CLI HY011 X HY CLI-specific condition 011 attribute cannot be set now SQL/CLI HY012 X HY CLI-specific condition 012 invalid transaction operation code SQL/CLI HY013 X HY CLI-specific condition 013 memory management error SQL/CLI HY014 X HY CLI-specific condition 014 limit on number of handles exceeded SQL/CLI HY017 X HY CLI-specific condition 017 invalid use of automatically allocated descriptor handle SQL/CLI HY018 X HY CLI-specific condition 018 server declined the cancellation request SQL/CLI HY019 X HY CLI-specific condition 019 non-string data cannot be sent in pieces SQL/CLI HY020 X HY CLI-specific condition 020 attempt to concatenate a null value SQL/CLI HY021 X HY CLI-specific condition 021 inconsistent descriptor information SQL/CLI HY024 X HY CLI-specific condition 024 invalid attribute value SQL/CLI HY055 X HY CLI-specific condition 055 non-string data cannot be used with string routine SQL/CLI HY090 X HY CLI-specific condition 090 invalid string length or buffer length SQL/CLI HY091 X HY CLI-specific condition 091 invalid descriptor field identifier SQL/CLI HY092 X HY CLI-specific condition 092 invalid attribute identifier SQL/CLI HY093 X HY CLI-specific condition 093 invalid datalink value SQL/MED HY095 X HY CLI-specific condition 095 invalid FunctionId specified SQL/CLI HY096 X HY CLI-specific condition 096 invalid information type SQL/CLI HY097 X HY CLI-specific condition 097 column type out of range SQL/CLI HY098 X HY CLI-specific condition 098 scope out of range SQL/CLI HY099 X HY CLI-specific condition 099 nullable type out of range SQL/CLI HY103 X HY CLI-specific condition 103 invalid retrieval code SQL/CLI HY104 X HY CLI-specific condition 104 invalid LengthPrecision value SQL/CLI HY105 X HY CLI-specific condition 105 invalid parameter mode SQL/CLI HY106 X HY CLI-specific condition 106 invalid fetch orientation SQL/CLI HY107 X HY CLI-specific condition 107 row value out of range SQL/CLI HY108 X HY CLI-specific condition 108 invalid cursor position SQL/CLI HYC00 X HY CLI-specific condition C00 optional feature not implemented SQL/CLI HZ??? HZ Reserved for ISO9579 (RDA)

## References

1. ["SQL:2011 draft"](https://www.wiscorp.com/sql20nn.zip) (Zip), Whitemarsh Information Systems Corporation, [archived](https://web.archive.org/web/20230525220603/https://www.wiscorp.com/sql20nn.zip) 25 May 2023 at the Wayback Machine

---
Adapted from the Wikipedia article [SQLSTATE](https://en.wikipedia.org/wiki/SQLSTATE) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/SQLSTATE?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
