The SQL-92 standard defines a set of SQLSTATE return codes. SQLSTATE is defined as a five-character string, where the leftmost two characters define the error class, and the remaining three characters define the error subclass. Some database vendors may extend these return codes; classes beginning with the numbers 5 through 9 and letters I through Z are reserved for such implementation-specific extensions. The SQLSTATE code for a particular JDBC action can be retrieved via the getSQLState() method of SQLException. Table 8-3 lists the SQLSTATE return codes defined in SQL-92.
| 
 Class  | 
 Class Definition  | 
 Subclass  | 
 Subclass Definition  | 
|---|---|---|---|
| 
 00  | 
 Successful completion  | 
 000  | 
 None  | 
| 
 01  | 
 Warning  | 
 000  | 
 None  | 
| 
 
  | 
 
  | 
 001  | 
 Cursor operation conflict  | 
| 
 
  | 
 
  | 
 002  | 
 Disconnect error  | 
| 
 
  | 
 
  | 
 003  | 
 Null value eliminated in set function  | 
| 
 
  | 
 
  | 
 004  | 
 String data, right truncation  | 
| 
 
  | 
 
  | 
 005  | 
 Insufficient item descriptor areas  | 
| 
 
  | 
 
  | 
 006  | 
 Privilege not revoked  | 
| 
 
  | 
 
  | 
 007  | 
 Privilege not granted  | 
| 
 
  | 
 
  | 
 008  | 
 Implicit zero-bit padding  | 
| 
 
  | 
 
  | 
 009  | 
 Search expression too long for information schema  | 
| 
 
  | 
 
  | 
 00A  | 
 Query expression too long for information schema  | 
| 
 02  | 
 No data  | 
 000  | 
 None  | 
| 
 07  | 
 Dynamic SQL error  | 
 000  | 
 None  | 
| 
 
  | 
 
  | 
 001  | 
 Using clause doesn't match dynamic parameters  | 
| 
 
  | 
 
  | 
 002  | 
 Using clause doesn't match target specifications  | 
| 
 
  | 
 
  | 
 003  | 
 Cursor specification can't be executed  | 
| 
 
  | 
 
  | 
 004  | 
 Using clause required for dynamic parameters  | 
| 
 
  | 
 
  | 
 005  | 
 Prepared statement not a cursor specification  | 
| 
 
  | 
 
  | 
 006  | 
 Restricted data type attribute violation  | 
| 
 
  | 
 
  | 
 007  | 
 Using clause required for result fields  | 
| 
 
  | 
 
  | 
 008  | 
 Invalid descriptor count  | 
| 
 
  | 
 
  | 
 009  | 
 Invalid descriptor index  | 
| 
 08  | 
 Connection Exception  | 
 000  | 
 None  | 
| 
 
  | 
 
  | 
 001  | 
 SQL-client unable to establish SQL-connection  | 
| 
 
  | 
 
  | 
 002  | 
 Connection name in use  | 
| 
 
  | 
 
  | 
 003  | 
 Connection doesn't exist  | 
| 
 
  | 
 
  | 
 004  | 
 SQL-server rejected establishment of SQL-connection  | 
| 
 
  | 
 
  | 
 006  | 
 Connection failure  | 
| 
 
  | 
 
  | 
 007  | 
 Transaction resolution unknown  | 
| 
 0A  | 
 Feature not supported  | 
 000  | 
 None  | 
| 
 
  | 
 
  | 
 001  | 
 Multiple server transactions  | 
| 
 21  | 
 Cardinality violation  | 
 000  | 
 None  | 
| 
 22  | 
 Data exception  | 
 000  | 
 None  | 
| 
 
  | 
 
  | 
 001  | 
 String data, right truncation  | 
| 
 
  | 
 
  | 
 002  | 
 Null value, no indicator  | 
| 
 
  | 
 
  | 
 003  | 
 Numeric value out of range  | 
| 
 
  | 
 
  | 
 005  | 
 Error in assignment  | 
| 
 
  | 
 
  | 
 007  | 
 Invalid date-time format  | 
| 
 
  | 
 
  | 
 008  | 
 Date-time field overflow  | 
| 
 
  | 
 
  | 
 009  | 
 Invalid time zone displacement value  | 
| 
 
  | 
 
  | 
 011  | 
 Substring error  | 
| 
 
  | 
 
  | 
 012  | 
 Division by zero  | 
| 
 
  | 
 
  | 
 015  | 
 Internal field overflow  | 
| 
 
  | 
 
  | 
 018  | 
 Invalid character value for cast  | 
| 
 
  | 
 
  | 
 019  | 
 Invalid escape character  | 
| 
 
  | 
 
  | 
 021  | 
 Character not in repertoire  | 
| 
 
  | 
 
  | 
 022  | 
 Indicator overflow  | 
| 
 
  | 
 
  | 
 023  | 
 Invalid parameter value  | 
| 
 
  | 
 
  | 
 024  | 
 Unterminated C string  | 
| 
 
  | 
 
  | 
 025  | 
 Invalid escape sequence  | 
| 
 
  | 
 
  | 
 026  | 
 String data, length mismatch  | 
| 
 
  | 
 
  | 
 027  | 
 Trim error  | 
| 
 23  | 
 Integrity constraint violation  | 
 000  | 
 None  | 
| 
 24  | 
 Invalid cursor state  | 
 000  | 
 None  | 
| 
 25  | 
 Invalid transaction state  | 
 000  | 
 None  | 
| 
 26  | 
 Invalid SQL statement name  | 
 000  | 
 None  | 
| 
 27  | 
 Triggered data change violation  | 
 000  | 
 None  | 
| 
 28  | 
 Invalid authorization specification  | 
 000  | 
 None  | 
| 
 2A  | 
 Syntax error or access rule violation in direct SQL statement  | 
 000  | 
 None  | 
| 
 2B  | 
 Dependent privilege descriptors still exist  | 
 000  | 
 None  | 
| 
 2C  | 
 Invalid character set name  | 
 000  | 
 None  | 
| 
 2D  | 
 Invalid transaction termination  | 
 000  | 
 None  | 
| 
 2E  | 
 Invalid connection name  | 
 000  | 
 None  | 
| 
 33  | 
 Invalid SQL descriptor name  | 
 000  | 
 None  | 
| 
 34  | 
 Invalid cursor name  | 
 000  | 
 None  | 
| 
 35  | 
 Invalid condition number  | 
 000  | 
 None  | 
| 
 37  | 
 Syntax error or access rule violation in dynamic SQL statement  | 
 000  | 
 None  | 
| 
 3C  | 
 Ambiguous cursor name  | 
 000  | 
 None  | 
| 
 3F  | 
 Invalid schema name  | 
 000  | 
 None  | 
| 
 40  | 
 Transaction rollback  | 
 000  | 
 None  | 
| 
 
  | 
 
  | 
 001  | 
 Serialization failure  | 
| 
 
  | 
 
  | 
 002  | 
 Integrity constraint violation  | 
| 
 
  | 
 
  | 
 003  | 
 Statement completion unknown  | 
| 
 42  | 
 Syntax error or access rule violation  | 
 000  | 
 None  | 
| 
 44  | 
 With check option violation  | 
 000  | 
 None  | 

Copyright © 2001 O'Reilly & Associates. All rights reserved.