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.