SQLSTATE Codes

From MidrangeWiki
Revision as of 14:44, 8 February 2016 by Starbuck5250 (talk | contribs) (+category Database, + explanation of SQLCODE to job log messages)
Jump to: navigation, search

Relationship between SQLCODE and job log messages

There are both positive and negative SQLCODEs, the latter are typically warnings or information, while the latter are errors.

The general connection between SQLCODEs and message descriptions is that the SQLCODE digits are the final digits in a message ID that generally starts with SQL.

So an SQLCODE of 100 (row not found) has a message description in QSQLMSG of SQL0100 of severity 0.

And SQLCODE of -206 (column not in table) has a message description in QSQLMSG of SQL0206 of severity 30.

There are some 5-digit negative SQLCODEs, and all 5 digits are at the end of the message ID. So SQLCODE of -30000 (DRDA protocol error) has message ID SQ30000, severity 30.


Listing of SQLSTATE values

The tables below provide descriptions of common SQLSTATE codes that can be returned to applications by DB2® for IBM i™. The tables include SQLSTATE values, their meanings, and their corresponding SQLCODE values. SQLSTATE is a code which consists of two parts:

Class (2 bytes) Value (3 bytes)

The Class describes the general type of the SQLSTATE. 00nnn codes are 'normal', 01nnn are 'warning', 02nnn are 'No data', etc.

Table 1. Class Code 00: Unqualified Successful Completion
SQLSTATE Value Meaning SQLCODE Values
00000 Completion of the operation was successful and did not result in any type of warning or exception condition. +000
Table 2. Class Code 01: Warning
SQLSTATE Value Meaning SQLCODE Values
01002 A DISCONNECT error occurred. +596
01003 Null values were eliminated from the argument of a column function. +000
01004 The value of a string was truncated when assigned to another string data type with a shorter length. +000, +445, +802, +20141
01005 Insufficient number of entries in an SQLDA. +239
01006 A privilege was not revoked. +569
01007 A privilege was not granted. +570
01009 The search condition is too long for the information schema. +177
0100A The query expression of the view is too long for the information schema. +178
0100C One or more ad hoc result sets were returned from the procedure. +466
0100D The cursor that was closed has been reopened on the next result set within the chain. +467
0100E The procedure returned too many result sets. +464, +20206
01503 The number of result columns is larger than the number of host variables provided. +000, +030
01504 The UPDATE or DELETE statement does not include a WHERE clause. +000, +088
01505 The statement was not executed because it is unacceptable in this environment. +084
01506 An adjustment was made to a DATE or TIMESTAMP value to correct an invalid date resulting from an arithmetic operation. +000
01515 The null value has been assigned to a host variable, because the non-null value of the column is not within the range of the host variable. +304
01517 A character that cannot be converted was replaced with a substitute character. +335
01519 The null value has been assigned to a host variable, because a numeric value is out of range. +802
01520 The null value has been assigned to a host variable, because the characters cannot be converted. +331
01522 The local table or view name used in the CREATE ALIAS statement is undefined. +403
01526 Isolation level has been escalated. +595
01528 WHERE NOT NULL is ignored, because the index key cannot contain null values. +645
01532 An undefined object name was detected. +204
01534 The string representation of a datetime value is invalid. +180, +181
01535 An arithmetic operation on a date or timestamp has a result that is not within the valid range of dates. +183
01536 During remote bind where existence checking is deferred, the server-name specified does not match the current server. +114
01539 Connection is successful but only SBCS characters should be used. +863
01542 Authorization ID does not have the privilege to perform the operation as specified. +552
01544 The null value has been assigned to a host variable, because a substring error occurred; for example, an argument of SUBSTR is out of range. +138
01545 An unqualified column name has been interpreted as a correlated reference. +012
01547 A mixed data value is improperly formed. +191, +304, +802
01548 The authorization ID does not have the privilege to perform the specified operation on the identified object. +551
01557 Too many host variables have been specified on SELECT INTO or FETCH. +326
01564 The null value has been assigned to a host variable, because division by zero occurred. +802
01565 The null value has been assigned to a host variable, because a miscellaneous

data exception occurred; for example, the character value for the CAST, DECIMAL, FLOAT, or INTEGER scalar function is invalid; a floating-point NAN (not a

number) or invalid data in a packed decimal field was detected.
+304, +420, +802
01567 The table was created but not journaled. +7905
01587 The unit of work was committed or rolled back, but the outcome is not fully known at all sites. +990
01593 An ALTER TABLE may cause data truncation. +460
01594 Insufficient number of entries in an SQLDA for ALL information (i.e. not enough descriptors to return the distinct name). +237
01627 The DATALINK value may not be valid because the table is in reconcile pending or reconcile is not a possible state. +360
01634 The distinct data type name is too long and cannot be returned in the SQLDA. The short name is returned instead. +7036
01643 Assignment to SQLCODE or SQLSTATE variable does not signal a warning or error. +385
01646 A result sets cannot be returned because the cursor was closed. +7050
01647 A DB2SQL BEFORE trigger changed to DB2ROW. +7051
01658 Binary data is invalid for DECRYPT_CHAR and DECYRYPT_DB. +20224
01660 The routine was created but a restore will not update the catalog. +7909
01662 Release record option ignored on CLOSE. +30107
01Hxx Valid warning SQLSTATEs returned by a user-defined function or external procedure CALL. +462

Table 3. Class Code 02: No Data
SQLSTATE Value Meaning SQLCODE Values
02000 One of the following exceptions occurred:
  • The result of the SELECT INTO statement or the subselect of the INSERT statement was an empty table.
  • The number of rows identified in the searched UPDATE or DELETE statement was zero.
  • The position of the cursor referenced in the FETCH statement was after the last row of the result table.
  • The fetch orientation is invalid.
+100
02001 No additional result sets returned. +387
Table 4. Class Code 07: Dynamic SQL Error
SQLSTATE Value Meaning SQLCODE Values
07001 The number of host variables is not correct for the number of parameter markers. -313
07002 The call parameter list or control block is invalid. -804
07003 The statement identified in the EXECUTE statement is a select-statement, or is not in a prepared state. -518
07004 The USING clause or INTO clause is required for dynamic parameters. -313
07005 The statement name of the cursor identifies a prepared statement that cannot be associated with a cursor. -517
07006 An input host variable, transition variable, or parameter marker cannot be used, because of its data type. -301
Table 5. Class Code 08: Connection Exception
SQLSTATE Value Meaning SQLCODE Values
08001 The application requester is unable to establish the connection. -30080, -30082, -30089
08002 The connection already exists. -842
08003 The connection does not exist. -843, -900
08004 The application server rejected establishment of the connection. -30060, -30061
08501 A DISCONNECT is not allowed when the connection uses an LU6.2 protected conversation. -858
Table 6. Class Code 09: Triggered Action Exception
SQLSTATE Value Meaning SQLCODE Values
09000 A triggered SQL statement failed. -723
Table 7. Class Code 0A: Feature Not Supported
SQLSTATE Value Meaning SQLCODE Values
0A001 The CONNECT statement is invalid, because the process is not in the connectable state. -752
Table 8. Class Code 0E: Invalid Schema Name List Specification
SQLSTATE Value Meaning SQLCODE Values
0E000 The schema name list in a SET PATH statement is not valid. -329
Table 9. Class Code 0F: Invalid Token
SQLSTATE Value Meaning SQLCODE Values
0F001 The locator value does not currently represent any value. -423
Table 10. Class Code 0K: Resignal When Handler Not Active
SQLSTATE Value Meaning SQLCODE Values
0K000 A RESIGNAL was issued but a handler is not active. -787
Table 11. Class Code 0W: Prohibited Statement Encountered During Trigger
SQLSTATE Value Meaning SQLCODE Values
0W000 The statement is not allowed in a trigger. -751
Table 12. Class Code 0Z: Diagnostics Exception
SQLSTATE Value Meaning SQLCODE Values
0Z001 Maximum number of stacked diagnostics areas exceeded. -20226
0Z002 Stacked diagnostics accessed without and active handler. -20228
Table 13. Class Code 20: Case Not Found for Case Statement
SQLSTATE Value Meaning SQLCODE Values
20000 The case was not found for the CASE statement. -773
Table 14. Class Code 21: Cardinality Violation
SQLSTATE Value Meaning SQLCODE Values
21000 The result of a SELECT INTO, scalar fullselect, or subquery of a basic predicate is more than one value. -811
21506 The same row of a table cannot be the target for more than one of an update, delete or insert operation.
Table 15. Class Code 22: Data Exception
SQLSTATE Value Meaning SQLCODE Values
22001 Character data, right truncation occurred; for example, an update or

insert value is a string that is too long for the column, or a datetime value

cannot be assigned to a host variable, because it is too small.
-302, -303, -404, -433, -802
22002 A null value, or the absence of an indicator parameter was detected;

for example, the null value cannot be assigned to a host variable, because

no indicator variable is specified.
-305
22003 A numeric value is out of range. -302, -304, -406, -446, -802
22004 A null value cannot returned from a procedure that is defined as PARAMETER

STYLE GENERAL or a type-preserving method that is invoked with a non-null

argument.
-305
22006 The fetch orientation is invalid. -231
22007 An invalid datetime format was detected; that is, an invalid string representation or value was specified. -180, -181
22008 Datetime field overflow occurred; for example, an arithmetic operation

on a date or timestamp has a result that is not within the valid range of

dates.
-183
22011 A substring error occurred; for example, an argument of SUBSTR is out of range. -138
22012 Division by zero is invalid. -802
22018 The character value for the CAST, DECIMAL, FLOAT, or INTEGER scalar function is invalid. -420
22019 The LIKE predicate has an invalid escape character. -130
22021 A character is not in the coded character set or the conversion is not supported. -330, -331
22023 A parameter or host variable value is invalid. -302, -304, -406, -802
22024 A NUL-terminated input host variable or parameter did not contain a NUL. -302
22025 The LIKE predicate string pattern contains an invalid occurrence of an escape character. -130
22501 The length control field of a variable length string is negative or greater than the maximum. -311
22503 The string representation of a name is invalid. -188
22504 A mixed data value is invalid. -191, -304, -406, -802
22511 ADT length exceeds maximum column length. The value for a ROWID or reference column is not valid. -399
22522 A CCSID value is not valid at all, not valid for the data type or subtype, or not valid for the encoding scheme. -189
22524 Character conversion resulted in truncation -334
22525 Partitioning key value is not valid. -327
Table 16. Class Code 23: Constraint Violation
SQLSTATE Value Meaning SQLCODE Values
23001 The update or delete of a parent key is prevented by a RESTRICT update or delete rule. -531, -532
23502 An insert or update value is null, but the column cannot contain null values. -407
23503 The insert or update value of a foreign key is invalid. -530
23504 The update or delete of a parent key is prevented by a NO ACTION update or delete rule. -531, -532
23505 A violation of the constraint imposed by a unique index or a unique constraint occurred. -803
23511 A parent row cannot be deleted, because the check constraint restricts the deletion. -543
23512 The check constraint cannot be added, because the table contains rows that do not satisfy the constraint definition. -544
23513 The resulting row of the INSERT or UPDATE does not conform to the check constraint definition. -545
23515 The unique index cannot be created or unique constraint added because the table contains duplicate values of the specified key. -603
23520 The foreign key cannot be defined, because all of its values are not equal to a parent key of the parent table. -667
23522 The range of values for the identity column or sequence is exhausted. -359
Table 17. Class Code 24: Invalid Cursor State
SQLSTATE Value Meaning SQLCODE Values
24501 The identified cursor is not open. -501, -507
24502 The cursor identified in an OPEN statement is already open. -502
24504 The cursor identified in the UPDATE, DELETE, SET, or GET statement is not positioned on a row. -508
24506 The statement identified in the PREPARE is the statement of an open cursor. -519
24507 FETCH CURRENT was specified, but the current row is deleted, or a value of an ORDER BY column of the current row has changed. -226
24513 FETCH NEXT, PRIOR, CURRENT, or RELATIVE is not allowed, because the cursor position is not known. -227
24514 A previous error has disabled this cursor. -906
Table 18. Class Code 25: Invalid Transaction State
SQLSTATE Value Meaning SQLCODE Values
25000 An update operation is invalid for the application execution environment. -30090
25006 An update operation is not valid because the transaction is read only. -817
25501 The statement is only allowed as the first statement in a unit of work. -428

Table 19. Class Code 26: Invalid SQL Statement Identifier
SQLSTATE Value Meaning SQLCODE Values
26501 The statement identified does not exist. -514, -516
26510 The statement name specified in a DECLARE CURSOR already has a cursor allocated to it. -5023

Table 20. Class Code 27: Triggered Data Change Violation
SQLSTATE Value Meaning SQLCODE Values
27000 An attempt was made to modify the target table of the MERGE statement by a constraint or trigger. -907

Table 21. Class Code 28: Invalid Authorization Specification
SQLSTATE Value Meaning SQLCODE Values
28000 Authorization name is invalid. -113, -188

Table 22. Class Code 2D: Invalid Transaction Termination
SQLSTATE Value Meaning SQLCODE Values
2D522 COMMIT and ROLLBACK are not allowed in an ATOMIC Compound statement. -774
2D528 Dynamic COMMIT or COMMIT ON RETURN procedure is invalid for the application execution environment -426, -30090
2D529 Dynamic ROLLBACK is invalid for the application execution environment. -427, -30090

Table 23. Class Code 2E: Invalid Connection Name
SQLSTATE Value Meaning SQLCODE Values
2E000 Connection name is invalid. -113, -188, -251

Table 24. Class Code 2F: SQL Function Exception
SQLSTATE Value Meaning SQLCODE Values
2F002 The SQL function attempted to modify data, but the function was not defined as MODIFIES SQL DATA. -577
2F003 The statement is not allowed in a function or procedure. -751
2F004 The SQL function attempted to read data, but the function was not defined as READS SQL DATA. -579
2F005 The function did not execute a RETURN statement. -578

Table 25. Class Code 34: Invalid Cursor Name
SQLSTATE Value Meaning SQLCODE Values
34000 Cursor name is invalid. -504

Table 26. Class Code 35: Invalid Condition Number
SQLSTATE Value Meaning SQLCODE Values
35000 Condition number is invalid. -393

Table 27. Class Code 36: Cursor Sensitivity Exception
SQLSTATE Value Meaning SQLCODE Values
36001 A SENSITIVE cursor cannot be defined for the specified select-statement. -243


Table 28. Class Code 38: External Function Exception
SQLSTATE Value Meaning SQLCODE Values
38xxx Valid error SQLSTATEs returned by an external routine or trigger. -443
38001 The external routine is not allowed to execute SQL statements. -487
38002 The external routine attempted to modify data, but the routine was not defined as MODIFIES SQL DATA. -577
38003 The statement is not allowed in a routine. -751
38004 The external routine attempted to read data, but the routine was not defined as READS SQL DATA. -579
38501 Error occurred while calling a user-defined function, external procedure, or trigger (using the SIMPLE CALL or SIMPLE CALL WITH NULLS calling convention). -443, -4302

Table 29. Class Code 39: External Function Call Exception
SQLSTATE Value Meaning SQLCODE Values
39004 A null value is not allowed for an IN or INOUT argument when using PARAMETER STYLE GENERAL or an argument that is a Java™ primitive type. -470, -20205

Table 30. Class Code 3B: Savepoint Exception
SQLSTATE Value Meaning SQLCODE Values
3B001 The savepoint is not valid. -880
3B002 The maximum number of savepoints has been reached. -20112
3B501 A duplicate savepoint name was detected. -881
3B502 A RELEASE or ROLLBACK TO SAVEPOINT was specified, but a savepoint does not exist. -882

Table 31. Class Code 3C: Ambiguous Cursor Name
SQLSTATE Value Meaning SQLCODE Values
3C000 The cursor name is ambiguous. -051

Table 32. Class Code 3F: Invalid Schema (Collection) Name
SQLSTATE Value Meaning SQLCODE Values
3F000 The schema (collection) name is invalid. -713

Table 33. Class Code 42: Syntax Error or Access Rule Violation
SQLSTATE Value Meaning SQLCODE Values
42501 The authorization ID does not have the privilege to perform the specified operation on the identified object. -551
42502 The authorization ID does not have the privilege to perform the operation as specified. -552
42506 Owner authorization failure occurred. -30053
42601 A character, token, or clause is invalid or missing. -007, -011, -029, -097, -104, -109, -115, -128, -199, -441, -491
42602 A character that is invalid in a name has been detected. -113, -251
42603 An unterminated string constant has been detected. -010
42604 An invalid numeric or string constant has been detected. -103, -105
42605 The number of arguments specified for a scalar function is invalid. -170
42606 An invalid hexadecimal constant has been detected. -110
42607 An operand of a column function or CONCAT operator is invalid. -112
42609 All operands of an operator or predicate are parameter markers. -417
42610 A parameter marker is not allowed. -184, -418
42611 The column or argument definition is invalid. -106, -604
42612 The statement string is an SQL statement that is not acceptable in the context in which it is presented. -084
42613 Clauses are mutually exclusive. -628
42614 A duplicate keyword or clause is invalid. -637
42615 An invalid alternative was detected. -644
42616 Invalid options are specified. -5047
42617 The statement string is blank or empty. -198
42618 A host variable is not allowed. -090, -312, -5012, -5024
42620 Read-only SCROLL was specified with the UPDATE clause. -228
42621 The check constraint generated column expression is invalid. -546
42622 A name or label is too long. -107
42623 A DEFAULT clause cannot be specified. -373
42625 A CASE expression is invalid. -580
42629 Parameter names must be specified for SQL routines. -078
42631 An expression must be specified on a RETURN statement in an SQL function. -057
42701 A duplicate column name in an INSERT or UPDATE operation or the SET transition-variable was detected. -121
42702 A column reference is ambiguous, because of duplicate names. -203
42703 An undefined column or parameter name was detected. -205, -206, -213, -5001
42704 An undefined object or constraint name was detected. -204
42705 An undefined server-name was detected. -950
42707 A column name in ORDER BY does not identify a column of the result table. -208
42709 A duplicate column name was specified in a key column list. -537
42710 A duplicate object or constraint name was detected. -456, -601
42711 A duplicate column name was detected in the object definition or ALTER TABLE statement. -612
42712 A duplicate table designator was detected in the FROM clause or REFERENCING clause of a CREATE TRIGGER statement. -212
42713 A duplicate object was detected in a list or is the same as an existing object. -242
42718 The local server name is not defined. -250
42723 A function with the same signature already exists in the schema. -454
42724 Unable to access an external program used for a user-defined function or a procedure. -444, -4300, -4303, -4304, -4306
42725 A routine or method was referenced directly (not by either signature

or by specific instance name), but there is more than one specific instance

of that routine or method.
-476
42726 Duplicate names for common table expressions were detected. -340
42732 A duplicate schema name in the SET CURRENT PATH statement was detected. -585
42733 A procedure with the specified name cannot be added to the schema because

the procedure overloading is not allowed in this database and there is already

a procedure with the same name in the schema.
-484
42734 A duplicate parameter-name, SQL variable name, label, or condition-name was detected. -590
42736 The label specified on the GOTO, ITERATE, or LEAVE statement is not found or not valid. -779
42737 The condition specified is not defined. -781
42738 A duplicate column name or unnamed column was specified in a DECLARE CURSOR statement of a FOR statement. -783
42802 The number of insert or update values is not the same as the number of columns. -117
42803 A column reference in the SELECT or HAVING clause is invalid, because

it is not a grouping column; or a column reference in the GROUP BY clause

is invalid.
-119, -122
42804 The result expressions in a CASE expression are not compatible. -581
42805 An integer in the ORDER BY clause does not identify a column of the result table. -125
42806 A value cannot be assigned to a host variable, because the data types are not compatible. -303
42807 The INSERT, UPDATE, or DELETE is not permitted on this object. -150, -155
42808 A column identified in the INSERT or UPDATE operation is not updatable. -151
42809 The identified object is not the type of object to which the statement applies. -152, -156, -159
42810 A base table is not identified in a FOREIGN KEY clause. -157
42811 The number of columns specified is not the same as the number of columns in the SELECT clause. -158
42812 A library name is required in CREATE TABLE in the system naming mode. -5002
42813 WITH CHECK OPTION cannot be used for the specified view. -160
42814 The column cannot be dropped, because it is the only column in the table. -195
42815 The data type, length, scale, value, or CCSID is invalid. -060, -171, -451, -713, -846, -5005
42816 A datetime value or duration in an expression is invalid. -182, -187
42817 The column cannot be dropped, because RESTRICT was specified and a

view or constraint is dependent on the column or the column is part of a partitioning

key.
-196
42818 The operands of an operator or function are not compatible. -131, -401
42819 An operand of an arithmetic operation or an operand of a function that requires a number is not a number. -402
42820 A numeric constant is too long, or it has a value that is not within the range of its data type. -405, -410
42821 A data type for an assignment to a column or variable is not compatible with the data type. -408
42822 An expression in the ORDER BY clause or GROUP BY clause is not valid. -214
42823 Multiple columns are returned from a subquery that only allows one column. -412
42824 An operand of LIKE is not a string, or the first operand is not a column. -132, -414
42825 The rows of UNION, INTERSECT, EXCEPT, or VALUES do not have compatible columns. -415
42826 The rows of UNION, INTERSECT, EXCEPT, or VALUES do not have the same number of columns. -421
42827 The table identified in the UPDATE or DELETE is not the same table designated by the cursor. -509
42828 The table designated by the cursor of the UPDATE or DELETE statement cannot be modified, or the cursor is read-only. -510, -520
42829 FOR UPDATE OF is invalid, because the result table designated by the cursor cannot be modified. -511
42830 The foreign key does not conform to the description of the parent key. -538
42832 The operation is not allowed on system objects. -607
42833 The qualified object name is inconsistent with the naming option. -5016
42834 SET NULL cannot be specified, because no column of the foreign key can be assigned the null value. -629
42835 Cyclic references cannot be specified between named derived tables. -341
42836 The specification of a recursive, named derived table is invalid. -346
42837 The column cannot be altered, because its attributes are not compatible with the current column attributes. -190
42841 A parameter marker can not be a user-defined type or reference type. -432
42842 A column or parameter definition is invalid, because a specified option is inconsistent with the column description. -683
42845 An invalid use of a NOT DETERMINISTIC or EXTERNAL ACTION function was detected. -583
42846 Cast from source type to target type is not supported. -461
42847 An OVRDBF command was issued for one of the referenced files, but one of the parameters is not valid for SQL. -7002
42848 Isolation level CS WITH KEEP LOCKS is not allowed. -194
42850 A logical file is invalid in CREATE VIEW. -7010
42851 A referenced file is not a table, view, or physical file. -7011
42852 The privileges specified in GRANT or REVOKE are invalid or inconsistent. (For example, GRANT ALTER on a view.) -557
42854 A result column data type in the select list is not compatible with the defined type in a typed view or materialized query table definition. -20055
42855 The assignment of the LOB to this host variable is not allowed. The

target host variable for all fetches of this LOB value for This cursor must

be a locator or LOB variable.
-392
42857 A referenced file has more than one format. -7003
42858 Operation cannot be applied to the specified object. -7001
42860 The constraint cannot be dropped because it is enforcing a primary key or ROWID. -784
42862 An extended dynamic statement cannot be executed against a non-extended dynamic package. -827
42863 An undefined host variable in REXX has been detected. -306
42866 The data type in either the RETURNS clause or the CAST FROM clause

in the CREATE FUNCTION statement is not appropriate for the data type returned

from the sourced function or RETURN statement in the function body.
-475
42872 FETCH statement clauses are incompatible with the cursor definition. -225
42873 An invalid number of rows was specified in a multiple-row FETCH or multiple-row INSERT. -221
42874 ALWCPYDTA(*NO) was specified, but a copy is necessary to implement the select-statement. -527
42875 The schema-name portion of a qualified name must be the same name as the schema name. -5051
42876 Different CCSIDs for keys in CREATE INDEX are only allowed with a *HEX sort sequence. -7024
42877 The column name cannot be qualified. -197
42878 An invalid function or procedure name was used with the EXTERNAL keyword. -449
42879 The data type of one or more input parameters in the CREATE FUNCTION

statement is not appropriate for the corresponding data type in the source

function.
-492
42880 The CAST TO and CAST FROM data types are incompatible, or would always result in truncation of a fixed string. -453
42881 Invalid use of a function. -391
42882 The specific instance name qualifier is not equal to the function name qualifier. -455
42883 No function or method was found with a matching signature. -458
42884 No routine was found with the specified name and compatible arguments. -440
42885 The number of input parameters specified on a CREATE FUNCTION statement does not match the number provided by the function named in the SOURCE clause. -483
42886 The IN, OUT, or INOUT parameter attributes do not match. -469
42887 The function is not valid in the context where it occurs. -390
42888 The table does not have a primary key. -539
42889 The table already has a primary key. -624
42890 A column list was specified in the references clause, but the identified parent table does not have a unique constraint with the specified column names. -573
42891 A duplicate UNIQUE constraint already exists. -541
42892 The referential constraint and trigger are not allowed, because the DELETE rule and trigger event are not compatible. -675
42893 The object or constraint cannot be dropped or authorities cannot be revoked from the object, because other objects are dependent on it. -478, -616
42894 The value of a column or sequence attribute is invalid. -574
42895 For static SQL, an input host variable cannot be used, because its

data type is not compatible with the parameter of a procedure or user-defined

function.
-301
42896 The ASP number is invalid. -7026
42898 An invalid correlated reference or transition table was detected in a trigger. -696
42899 Correlated references and column names are not allowed for triggered actions with the FOR EACH STATEMENT clause. -697
428A1 Unable to access a file referenced by a file reference variable. -452
428B3 An invalid SQLSTATE was specified. -435
428B7 A number specified in an SQL statement is out of the valid range. -490
428B8 The name specified on a rename is not valid. -7029
428BA WITHOUT RETURN cursors must not be specified in SET RESULT SETS. -20236
428C1 Only one ROWID or IDENTITY column can be specified for a table. -372
428C7 A ROWID or reference column specification is not valid. -771
428C9 A ROWID or IDENTITY column cannot be specified as the target column of an INSERT or UPDATE. -798
428D1 Unable to access a file referenced by a DATALINK value. -358
428D2 AS LOCATOR cannot be specified for a non-LOB parameter. -398
428D4 A cursor specified in a FOR statement cannot be referenced in an OPEN, CLOSE, or FETCH statement. -776
428D5 The ending label does not match the beginning label. -778
428D6 UNDO is not allowed for NOT ATOMIC compound statements. -780
428D7 The condition value is not allowed. -782
428D8 The sqlcode or sqlstate variable declaration is not valid. -785
428EC The fullselect specified for the materialized query table is not valid. -20058
428EK The qualifier for a declared global temporary table name or an index on a declared global temporary table must be SESSION. -079
428EW The table cannot be converted to or from a materialized query table. -20093
428F1 An SQL TABLE function must return a table result. -20120
428F2 An integer expression must be specified on a RETURN statement in an SQL procedure. -058
428F9 A sequence expression cannot be specified in this context. -348
428FA The scale of the decimal number must be zero. -336
428FC The length of the encryption password is not valid. -20144
428FD The password used for decryption does not match the password used to encrypt the data. -20145
428FE The data is not a result of the ENCRYPT function. -20146
428FR A column cannot be altered as specified. -20180
428FT The table is not compatible with the specified data partitioning operation. -20183
428FY A column cannot be added, dropped, or altered in a materialized query table. -20235
428G0 A logical file prevents the alter of the partition attributes. -20246
428G2 The last data partition cannot be dropped from the table. -20251
42903 Invalid use of an aggregate function or OLAP function. -120
42904 The SQL procedure was not created because of a compile error. -7032
42906 A column function in a subquery of a HAVING clause includes an expression that applies an operator to a correlated reference. -133
42907 The string is too long. -134
42908 The statement does not include a required column list. -153
42910 The statement is not allowed in a Compound statement. -775
42911 A decimal divide operation is invalid, because the result would have a negative scale. -419
42912 A column cannot be updated, because it is not identified in the UPDATE clause of the select-statement of the cursor. -503
42914 The DELETE is invalid, because a table referenced in a subquery can be affected by the operation. -536
42917 The object cannot be explicitly dropped or altered. -658
42918 A user-defined data type cannot be created with a system-defined data type name (for example, INTEGER). -473
42919 Nested compound statements are not allowed. -777
42922 DROP SCHEMA cannot be executed under commitment control. -5003
42923 Program or package must be recreated to reference an alias-name. -7033
42924 An alias resolved to another alias rather than a table or view at the remote location. -513
42926 Locators are not allowed with COMMIT(*NONE). -7034
42929 FOR ALL PARTITIONS is not allowed for an encoded vector index. -20243
42930 The same column was identified in FOR UPDATE OF and ORDER BY. -5021
42932 The program preparation assumptions are incorrect. -30052
42937 The parameter must not have a subtype of mixed. -192
42939 The name cannot be used, because the specified identifier is reserved for system use. -457, -707
42944 The authorization ID cannot be both an owner and primary group owner. -7028
42961 The server name specified does not match the current server. -114
42962 A long column, LOB column, structured type column or datalink column cannot be used in an index, a key, or a constraint. -350
42969 The package was not created and the current unit of work was rolled back, because of internal limitations or an invalid section number. -7020
42970 COMMIT HOLD or ROLLBACK HOLD is only allowed to a DB2 UDB for iSeries application server. -7018
42971 SQL statements cannot be executed under commitment control, because commitment control is already active to another relational database. -7017
42972 An expression in a join-condition or ON clause of a MERGE statement references columns in more than one of the operand tables. -338
42977 The authorization ID cannot be changed when connecting to the local server. -7022
42978 An indicator variable is not a small integer. -080
42981 CREATE SCHEMA is not allowed if changes are pending in the unit of work. -7941
42984 The privilege cannot be granted to the view, because *OBJOPR or *OBJMGT

authority exists on a dependent view or table, and the grantee does not have

  • ALLOBJ or the specified privilege on the dependent table or view.
-7027
42985 The statement is not allowed in a routine. -577, -579, -751
42987 The statement is not allowed in a trigger. -751
42990 A unique index or unique constraint is not allowed because the key columns are not a superset of the partitioned key columns. -270
42995 The requested function does not apply to global temporary tables. -526
42996 The partition key cannot be a datetime or floating-point column. -328
42998 A referential constraint is not allowed because the foreign key columns

are not a superset of the partitioned key columns or the node group is not

the same as the parent table.
-256
42999 The query is not allowed on a distributed table or view. -255
429B6 Rows from a distributed table cannot be redistributed because the table contains a datalink column with FILE LINK CONTROL. -7037
429B7 A referential constraint with a delete rule of CASCADE is not allowed on a table with a DataLink column with FILE LINK CONTROL. -7038
429BD RETURN must be the last SQL statement of the atomic compound statement within an SQL row or table function. -20148
429BH A partitioned table cannot contain an identity column. -20247
429BM The ICU sort sequence cannot be used in this context. -20268

Table 34. Class Code 44: WITH CHECK OPTION Violation
SQLSTATE Value Meaning SQLCODE Values
44000 The INSERT or UPDATE is not allowed, because a resulting row does not satisfy the view definition. -161

Table 35. Class Code 46: Java Errors
SQLSTATE Value Meaning SQLCODE Values
46001 The URL specified on an install or replace of a jar procedure did not identify a valid jar file. -20200
46002 The jar name specified on the install, replace, or remove of a Java procedure is not valid. -20201
46003 The jar file cannot be removed, a class is in use by a procedure. -20202
46007 A Java function has a Java method with an invalid signature. -20203
46008 A Java function cannot map to a single Java method. -20204
46501 The install or remove jar procedure for "<jar-id>" specified the use of a deployment descriptor. -20207

Table 36. Class Code 51: Invalid Application State
SQLSTATE Value Meaning SQLCODE Values
51002 The package corresponding to an SQL statement execution request was not found. -805
51003 Consistency tokens do not match. -818
51004 An address in the SQLDA is invalid. -822
51009 COMMIT or ROLLBACK is not allowed, because commitment control has not been started. -7007
51015 An attempt was made to execute a section that was found to be in error at bind time. -525
51021 SQL statements cannot be executed until the application process executes a rollback operation. -918
51035 A PREVVAL expression cannot be used because a value has not been generated for the sequence yet in this session. -845
51036 An implicit connect to a remote server is not allowed because a savepoint is outstanding. -20110
51037 The operation is not allowed because a trigger has been marked inoperative. -7048
51039 The ENCRYPTION PASSWORD value is not set. -20143

Table 37. Class Code 53: Invalid Operand or Inconsistent Specification
SQLSTATE Value Meaning SQLCODE Values
53038 The number of key limit values is zero or greater than the number of columns in the key. -663
53039 The PART clause of the ALTER statement is omitted or invalid. -665
53045 The data type of the key limit constant is not the same as the data type of the column. -678

Table 38. Class Code 54: SQL or Product Limit Exceeded
SQLSTATE Value Meaning SQLCODE Values
54001 The statement is too long or too complex. -101
54002 A string constant is too long. -102
54004 The statement has too many table names or too many items in a SELECT or INSERT list. -129, -840
54005 The sort key is too long, or has too many columns. -136
54006 The result of concatenation is too long. -137
54008 The key is too long, a column of the key is too long, or the key many columns. -602, -613, -614, -631
54009 Too many users were specified in GRANT or REVOKE. -5017
54010 The record length of the table is too long. -101
54011 Too many columns were specified for a table, view, or table function. -101, -680
54018 The row is too long. -809
54019 The maximum number of late descriptors has been exceeded, probably because too many different CCSIDs were used. -871
54021 Too many constraints, or the size of the constraint is too large. -642
54023 The limit for the number of parameters or arguments for a function or a procedure has been exceeded. -442, -448
54028 The maximum number of concurrent LOB handles has been reached. -429
54035 An internal object limit exceeded. -7049
54038 Maximum depth of nested routines or triggers was exceeded. -724
54044 A multiple-byte (UCS-2) sort sequence table cannot be supported in DRDA® because it is too large. -7031
54054 The combination of the number of table space partitions and the corresponding length of the partitioning limit key it too large. -4701

Table 39. Class Code 55: Object Not in Prerequisite State
SQLSTATE Value Meaning SQLCODE Values
55005 Recursion is only supported to a DB2 UDB for iSeries application server. -145
55006 The object cannot be dropped, because it is currently in use by the same application process. -615, -950
55007 The object cannot be altered, because it is currently in use by the same application process. -951
55018 The schema cannot be dropped, because it is in the library list. -7006
55019 The object is in an invalid state for the operation. -7008, -20054
55029 Local program attempted to connect to a remote database. -862
55042 The alias is not allowed because it identifies a single member of a multiple member file. -7030
55048 Encrypted data cannot be encrypted. -20147
55050 An object cannot be created into a protected schema. -7052

Table 40. Class Code 56: Miscellaneous SQL or Product Error
SQLSTATE Value Meaning SQLCODE Values
56016 The ranges specified for data partitions are not valid. -636
56084 An unsupported SQLTYPE was encountered in a select list or input list. -351, -352
56095 A bind option is invalid. -30104
560BF The encryption and decryption facility has not been installed. -20223
560C4 The option is not valid for the ARD interface. -5027, -5028

Table 41. Class Code 57: Resource Not Available or Operator Intervention
SQLSTATE Value Meaning SQLCODE Values
57005 The statement cannot be executed, because a utility or a governor time limit was exceeded. -666
57006 The object cannot be created, because a DROP or CREATE is pending. -679
57007 The object cannot be used, because an operation is pending. -910
57011 Virtual storage or database resource is not available. -904, -971, -7053
57012 A non-database resource is not available. This will not affect the successful execution of subsequent statements. -30040
57013 A non-database resource is not available. This will affect the successful execution of subsequent statements. -30041
57014 Processing was canceled as requested. -952
57017 Character conversion is not defined. -332
57033 Deadlock or timeout occurred without automatic rollback. -913
57042 DDM recursion has occurred. -30001
57043 A local SQL application program cannot be executed on an application server. -7021
57050 The file server is not currently available. -357

Table 42. Class Code 58: System Error
SQLSTATE Value Meaning SQLCODE Values
58003 An invalid section number was detected. -144
58004 A system error (that does not necessarily preclude the successful execution of subsequent SQL statements) occurred. -901, -4301
58008 Execution failed due to a distribution protocol error that will not affect the successful execution of subsequent DDM commands or SQL statements. -30000
58009 Execution failed due to a distribution protocol error that caused deallocation of the conversation. -30020
58010 Execution failed due to a distribution protocol error that will affect the successful execution of subsequent DDM commands or SQL statements. -30021
58011 The DDM command is invalid while the bind process in progress. -30050
58012 The bind process with the specified package name and consistency token is not active. -30051
58014 The DDM command is not supported. -30070
58015 The DDM object is not supported. -30071
58016 The DDM parameter is not supported. -30072
58017 The DDM parameter value is not supported. -30073
58018 The DDM reply message is not supported. -30074
58028 The commit operation failed, because a resource in the unit of work was not able to commit its resources. -175
58033 An unexpected error occurred while attempting to access a client driver. -969