From Wikipedia, the free encyclopedia
SQL Return Codes are used on a day-to-day basis for the diagnosis of programming failures as a result of SQL calls by IBM Db2 programs. An important feature of IBM Db2 programs is the error processing. The error diagnostic containing the SQL Return Code is held in the field SQLCODE within the Db2 SQLCA block.
SQLCODE is no longer part of the SQL-standard. The SQL-standard replaced SQLCODE by the more detailed SQLSTATE.
SQLCA[edit]
The SQL communications area (SQLCA) structure is used within the IBM Db2 program to return feedback to the application program.
SQLCODE[edit]
The SQLCODE field contains the SQL return code. The code can be zero (0), negative or positive:
- 0 means that the execution was successful.
- Negative values indicate an unsuccessful execution with an error.
An example is -911, which means that a timeout has occurred with a rollback. - Positive value mean a successful execution with a warning.
An example is +100, which means that no matching rows were found or that the cursor has reached the end of the table.
Here is a more comprehensive list of the SQLCODEs for DB2. Note that this list is not exhaustive. Also note that some SQLCODEs may only occur in specific Db2 products; e.g., only on Db2 z/OS, only on Db2 LUW, or only on Db2 for IBM i.
Zero (Successful)[edit]
0 Successful
Negative values (Errors)[edit]
-007 | The specified ‘character’ is not a valid character in SQL statements. |
-010 | THE string constant beginning with string is not terminated properly. |
-029 | INTO Clause required. |
-060 | INVALID type SPECIFICATION : spec |
-084 | Unacceptable SQL statement. |
-101 | The statement is too long or too complex. |
-102 | String constant is too long. |
-103 | String constant is too long. Max is 128 characters. |
-104 | Illegal symbol encountered in the SQL statement. |
-105 | String constant is too long. |
-117 | The number of values in the INSERT does not match the number of columns. |
-119 | Error in GROUP BY or HAVING clause. |
-122 | Column or Expression in the Select List is not valid |
-156 | Invalid syntax near keyword. |
-180 | Bad data in Date/Time/Timestamp. |
-181 | Bad data in Date/Time/Timestamp. |
-188 | The host variable in a DESCRIBE statement is not a valid string representation of a name. |
-199 | Illegal use of the specified keyword. |
-203 | A REFERENCE TO COLUMN column-name IS AMBIGUOUS |
-204 | Object not defined to Db2. |
-205 | Column name not in table. |
-206 | Column does not exist in any table of the SELECT. |
-207 | Invalid column name. |
-208 | THE ORDER BY CLAUSE IS INVALID BECAUSE COLUMN column-name IS NOT PART OF THE RESULT TABLE |
-209 | Ambiguous column name |
-216 | Not the same number of expressions on both sides of the comparison in a SELECT. |
-224 | FETCH cannot make an INSENSITIVE cursor SENSITIVE. |
-229 | The locale specified in a SET LOCALE statement was not found. |
-257 | Implicit conversion in datatype is not allowed. |
-289 | Db2 is running out of space in tablespace |
-302 | THE VALUE OF INPUT VARIABLE OR PARAMETER NUMBER position-number IS INVALID OR TOO LARGE FOR THE TARGET COLUMN OR THE TARGET VALUE |
-303 | A VALUE CANNOT BE ASSIGNED TO OUTPUT HOST VARIABLE NUMBER position-number BECAUSE THE DATA TYPES ARE NOT COMPARABLE |
-305 | Null indicator needed. |
-310 | The value of a decimal is null |
-311 | Varchar, insert or update. -LEN field with the right data length not set. |
-313 | The number of host variables specified is not equal to the number of parameter markers. |
-401 | The data types of the operands of an operation are not compatible. |
-404 | The Sql Statement specified contains a String that is too long. |
-407 | AN UPDATE, INSERT, OR SET VALUE IS NULL, BUT THE OBJECT COLUMN column-name CANNOT CONTAIN NULL VALUES |
-408 | A value is not compatible with the data type of its assignment target. Target name is «<name>». (***OBS: Para alguns casos o CAST resolve ) |
-413 | Overflow occurred during numeric data type conversion. |
-414 | A like predicate is invalid because the first operand is not a string. |
-415 | The corresponding columns, column-number, of the operands of a set operator are not compatible. |
-418 | Use of parameter marker not valid. |
-420 | The value of a string argument was not acceptable to the ‘function-name’ function |
-421 | THE OPERANDS OF A UNION OR UNION ALL DO NOT HAVE THE SAME NUMBER OF COLUMNS |
-433 | The data is too large |
-438 | Application raised error with diagnostic text: text |
-440 | Routine &1 in &2 not found with specified parameters.A function or procedure with the specified name and compatible arguments was not found.[1] |
-482 | The procedure returned no locators. |
-501 | Cursor not open on FETCH. |
-502 | Opening cursor that is already open. |
-503 | Updating column needs to be specified. |
-504 | Cursor name not declared. |
-510 | The Table designated by the cursor of the Update or Delete statement cannot be modified. |
-530 | Referential integrity preventing the INSERT/UPDATE |
-532 | Referential integrity (DELETE RESTRICT rule) preventing the DELETE. |
-536 | Referential integrity (DELETE RESTRICT rule) preventing the DELETE. |
-545 | Check constraint preventing the INSERT/UPDATE. |
-551 | Authorization failure. |
-554 | An authorization ID or a role cannot GRANT a privilege to itself. |
-601 | You tried to create an object that already exists |
-602 | Too many columns specified in a create index. |
-603 | a unique index cannot be created because the table contains rows which are duplicates with respect to the values of the identified columns and periods |
-604 | a data type definition specifies an invalid length, precision, or scale attribute |
-607 | operation or option operation is not defined for this object |
-610 | warning: a create/alter on object has placed object in pending |
-611 | only lockmax 0 can be specified when the lock size of the tablespace is tablespace or table |
-612 | identifier is a duplicate name |
-613 | the primary key or a hash key or a unique constraint is too long or has too many columns and periods |
-614 | the index cannot be created or altered, or the length of a column cannot be changed because the sum of the internal lengths of the columns for the index is greater than the allowable maximum |
-615 | operation-type is not allowed on a package in use |
-616 | obj-type1 obj-name1 cannot be dropped because it is referenced by obj-type2 obj-name2 |
-617 | a type 1 index is not valid for table |
-618 | operation operation is not allowed on system databases |
-619 | operation disallowed because the database is not stopped |
-620 | keyword keyword in stmt-type statement is not permitted for a space-type space in the database-type database |
-621 | duplicate dbid dbid was detected and previously assigned to database-name |
-622 | for mixed data is invalid because the mixed data install option is no |
-623 | cluster is not valid for table-name |
-624 | table table-name already has a primary key or unique constraint with specified columns and periods |
-625 | table table-name does not have an index to enforce the uniqueness of the primary or unique key |
-625 | warning: the definition of table has been changed to incomplete |
-626 | the alter statement is not executable because the page set is not stopped |
-627 | the alter statement is invalid because the table space or index has user-managed data sets |
-628 | the clauses are mutually exclusive |
-629 | set null cannot be specified because foreign key name cannot contain null values |
-630 | error: the WHERE NOT NULL specification is invalid for type 1 indexes |
-631 | foreign key name is too long or has too many columns |
-632 | the table cannot be defined as a dependent of table-name because of DELETE rule restrictions |
-633 | the DELETE rule must be DELETE-rule |
-634 | the DELETE rule must not be cascade |
-635 | the DELETE rules cannot be different or cannot be set null |
-636 | ranges specified for partition part-num are not valid |
-637 | duplicate keyword-name keyword or clause |
-638 | table table-name cannot be created because column definition is missing |
-639 | a nullable column of a foreign key with a DELETE rule of set null cannot be a column of the key of a partitioned index |
-640 | locksize row cannot be specified because table in this tablespace has type 1 index |
-642 | too many columns in unique constraints |
-643 | a check constraint or the value of an expression for a column of an index exceeds the maximum allowable length key expression |
-644 | invalid value specified for keyword or clause keyword-or-clause in statement stmt-type |
-645 | WHERE NOT NULL is ignored because the index key cannot contain null values |
-646 | table table-name cannot be created in specified table space table-space-name because it already contains a table |
-647 | bufferpool bp-name for implicit or explicit tablespace or indexspace name has not been activated |
-650 | the alter statement cannot be executed, reason reason-code copyright 2014 TheAmericanProgrammer.com Unauthorized copying prohibited |
-651 | table description exceeds maximum size of object descriptor. |
-652 | violation of installation defined edit or validation procedure proc-name |
-653 | table table-name in partitioned table space tspace-name is not available because its partitioned index has not been created |
-655 | the create or alter stogroup is invalid because the storage group would have both specific and non-specific volume ids |
-658 | a object-type cannot be dropped using the statement statement |
-660 | index index-name cannot be created or altered on partitioned table space tspace-name because key limits are not specified |
-661 | object-type object-name cannot be created on partitioned table space tspace-name because the number of partition specifications is not equal to the number of partitions of the table space |
-662 | a partitioned index cannot be created on a table space, or a table space cannot be index-controlled. table space tspace-name, reason reason-code |
-663 | the number of key limit values is either zero, or greater than the number of columns in the key of index index-name |
-664 | the internal length of the limit-key fields for the partitioned index exceeds the length imposed by the index manager |
-665 | the partition clause of an alter statement is omitted or invalid |
-666 | stmt-verb object cannot be executed because function is in progress |
-667 | the clustering index for a partitioned table space cannot be explicitly dropped |
-668 | the column cannot be added to the table because the table has an edit procedure defined with row attribute sensitivity |
-669 | the object cannot be explicitly dropped. reason reason-code |
-670 | the record length of the table exceeds the page size limit |
-671 | the bufferpool attribute of the table space cannot be altered as specified because it would change the page size of the table space |
-672 | operation drop not allowed on table table_name |
-676 | the physical characteristics of the index are incompatible with respect to the specified statement. the statement has failed. reason reason-code |
-677 | insufficient virtual storage for bufferpool expansion |
-678 | the constant specified for the index limit key must conform to the data type data-type of the corresponding column column-name |
-679 | the object name cannot be created because a drop is pending on the object |
-680 | too many columns specified for a table, view or table function |
-681 | column column-name in violation of installation defined field procedure. rt: return-code, rs: reason-code, msg: message-token |
-682 | field procedure procedure-name could not be loaded |
-683 | the specification for column, distinct type, function, or procedure data-item contains incompatible clauses |
-684 | the length of constant list beginning string is too long |
-685 | invalid field type, column-name |
-686 | column defined with a field procedure can not compare with another column with different field procedure |
-687 | field types incomparable |
-688 | incorrect data returned from field procedure, column-name, msgno |
-689 | too many columns defined for a dependent table |
-690 | the statement is rejected by data definition control support. reason reason-code |
-691 | the required registration table table-name does not exist |
-692 | the required unique index index-name for ddl registration table table-name does not exist |
-693 | the column column-name in ddl registration table or index name is not defined properly |
-694 | the schema statement cannot be executed because a drop is pending on the ddl registration table table-name |
-694 | the ddl statement cannot be executed because a drop is pending on the ddl registration table |
-695 | invalid value seclabel specified for security label column of table table-name |
-696 | the definition of trigger trigger-name includes an invalid use of correlation name or transition table name name. reason code=reason-code |
-697 | old or new correlation names are not allowed in a trigger defined with the for each statement clause. old_table or new_table names are not allowed in a trigger with the before clause. |
-747 | The table is not available. |
-803 | Duplicate key on insert or update. |
-804 | Error in input parameters for the SQL statement. |
-805 | DBRM or package not found in plan. |
-811 | More than one row retrieved in SELECT INTO. |
-818 | Plan and program: timestamp mismatch. |
-902 | Pointer to Essential Control Block(RDA/CT) has value 0, Rebind Required. This may also occur if one of the DB volumes is still present, but inaccessible. |
-904 | Unavailable resource. Someone else is locking your data. |
-911 | Deadlock or timeout. Rollback has been done. |
-913 | Deadlock or timeout. No rollback. |
-922 | Authorization needed. |
-924 | Db2 Connection internal error. |
-927 | The language interface was called but no connection had been made. |
-955 | Sort memory cannot be allocated to process the statement. |
-964 | The transaction log space is depleted or temporary increase in the number of active transactions. |
-970 | wrong (also missing) permissions on Db2 file systems / Db2 filesystems owned by root. |
-998 | Error occurred during transaction or heuristic processing. |
-2310 | The utility could not generate statistics |
-3508 | Load Error accessing scratch space. Error in accessing a file or path of type «TEMP_FILE» during load or load query. The scratch directory where the msg files in a load job are stored does not have the required permissions. |
-7008 | The object that is specified is not valid for the requested operation. |
-10330 | Permission denied to change database. Contact system administrator. |
-30090 | Remote operation invalid for application execution environment. |
[1]
Positive Values (Warnings)[edit]
+98 | A dynamic SQL statement ends with a semicolon |
+100 | Row not found or end of cursor. |
+222 | Trying to fetch a row within a DELETE statement. |
+223 | Trying to fetch a row within an UPDATE statement. |
+231 | FETCH after a BEFORE or AFTER but not on a valid row. |
+304 | A value with data type (data type 1) cannot be assigned to a host variable because the value is not within the range of the host variable in position (position number) with data type (data type 2) |
+354 | A rowset fetch statement may have returned one or more rows of data. however, one or more warning conditions were also encountered. use the get diagnostics statement for more information regarding the conditions that were encountered |
+562 | A grant of a privilege was ignored because the grantee already has the privilege from the grantor. |
+802 | The null indicator was set to -2 as an arithmetic. |
References[edit]
- ^ «IBM Docs».
- «DB2 Version 9.1 for z/OS Codes» (PDF). September 2013.
- «DB2 SQL CODE Description and solutions».
- «SQL codes». September 2013.
Содержание
- Understanding Return Codes in the DB2 Diagnostic Log
- DB2 Diagnostic Log
- db2diag tool
- PDLOGMSGS_LAST24HOURS and PD_GET_LOG_MSGS
- Specific Authentication Issue
- Getting More Information from a Return Code
- Db2 Basics: Error Messages
- Structure of an Error Message
- Looking up Error Messages
- Command Line
- IBM Db2 Knowledge Center
- Error codes in db2
Understanding Return Codes in the DB2 Diagnostic Log
I learned a nifty little trick while troubleshooting a connection issue, and thought I would share. It can be useful in getting information out of the db2 diagnostic log.
DB2 Diagnostic Log
The DB2 diagnostic log has a wealth of information. After over 15 years working with DB2, I still learn new things about how to read it every single year.
db2diag tool
I very much like the db2diag tool for parsing the DB2 diagnostic log, and it’s my first line of defense when looking at it. One of the nice things about the db2diag tool is that it can be run to get the contents of the diagnostic log without changing directories. This syntax gives a quick and easy look at the last few records:
db2diag also has some nice features for filtering and formatting the data to look for specific things. I frequently use syntax like this to highlight recent problems in the diagnostic log:
For more on db2diag, see my blog entry on the db2diag Tool for Parsing the Diagnostic Log
PDLOGMSGS_LAST24HOURS and PD_GET_LOG_MSGS
When analyzing more deeply, I also sometimes use the PD_GET_LOG_MSGS table function and the PDLOGMSGS_LAST24HOURS administrative view. I’m a big fan of using SQL to get the data I want, and these two make that possible. See my blog on SQL Access to the DB2 Diagnostic Log for more information on these access methods.
Specific Authentication Issue
I learned something new about db2diag this week. I was investigating an issue where a user reported an inability to authenticate(remotely) with DB2. Digging in the DB2 diagnostic log, I found this text:
From those two DB2 diagnostic log entries, I can see that there was a failed password validation attempt at 13:37.
Getting More Information from a Return Code
There is more information available here. The rc = -2146500507 in the first entry here can actually provide a bit more information. Return codes like this can be expanded a bit using this syntax:
This error message clearly states that an incorrect password was entered. There are different values for other issues – even things like the user id or password being too long or the password being expired. This doesn’t just apply to authentication issues – return codes can be returned in this format in a number of scenarios. A riddiculously long list of possible RC’s is returned with this syntax:
The list is much longer than this. It literally scrolled for more than 15 seconds when I ran this command.
Источник
Db2 Basics: Error Messages
When I do work in other domains – even something as connected as scripting – I find the error messages confusing and unhelpful. Most of the time, this is mostly because I don’t know much about the language or the the area. I’d like to think that my opinion that Db2 error messages are really quite helpful and useful is unbiased, but having built a career on focusing on IBM Db2, I’m sure I am biased.
There are some simple things that can really help understand Db2 error messages, and I thought I’d share them.
Structure of an Error Message
Error messages that users see from Db2 nearly always start with SQL . There are a few other three-letter prefixes such as DSN or DBI, but SQL is the most common one. I get the vague impression that some other RDBMSes or some developers rely more on the SQLSTATE than the error. But if I have a choice, the error is much more useful to me.
Sometimes applications log the error message number using a minus sign in front, like this:
In the case of the above, the error messages are both SQL1476N The current transaction was rolled back because of error sqlcode and the error SQL0911N – which is the error code that caused the rollback.
When reported in full, it is important to record the full error message because it often has other critical information like the object name the error occurred on or the reason code for the error. For example, the error message above:
means something technically different with a reason code of 2 vs. a reason code of 68.
Another example of this is when there is a permissions problem:
This error message gives us the user id (VDBA), the type of privilege (EXECUTE), and the object name (SYSPROC.MON_GET_TABLESPACE). With those pieces of information, the error is much easier to resolve.
Let’s take a moment to look at the structure of the error message again. I already mentioned that the first three characters are nearly always SQL. After those three characters come normally 4, but on some occasions 5, numbers. At the end of every error message is a letter. The letter is always the same for a given error message. For example, SQL0911N will always have an N on the end. These letters actually tell you how severe the error is. The common values are:
- W – Warning. This means the statement was at least partially successful. Sometimes the “warning” simply notifies you of something that makes no difference to the result, while other times (like during a restore), it can mean some part of the command did not complete as expected.
- N – Statement Failure. This means that the statement did not have its desired effect and must be re-run after the issue is corrected. This usually only affects the current statement. Depending on how you are executing a file of statements or script of statements, statements after the failure may succeed.
- C – Serious System Failure. This means there is a very serious problem that may affect not just this statement or connection, but the server as a whole. If you have a DBA, involve them when you get an error code ending in C.
One of the most common statement failures is SQL0104N – it indicates that you have some sort of syntax error with the statement. It generally gives you more details on where in the statement the issue is:
Looking up Error Messages
There are two great locations where you can look up the official description on the error and get the official details on what different reason codes mean.
Command Line
A lot of details on an error message are available at the command line. Simply type db2 ? and the error number, like this:
This isn’t even the longest one, by a long shot. Notice particularly the “User response” section that often suggests things to try to resolve the issue.
IBM Db2 Knowledge Center
The same information, plus a little more, is available in the IBM Db2 Knowledge Center. In the KC, you can link to related topics. Check out the same error information in the KC. You can also navigate to the message reference. This used to be a book in the shelf of reference books. You can use the left pane with the table of contents to navigate to specific error messages if search seems to be failing you.
There are, of course, other great resources available online. It is pretty rare that you encounter an actual bug in the Db2 product, but you can look up known issues (APARS).
Any IT professional develops a knack for googling and sifting through the junk for the diamonds. There are a number of bloggers and forums where you can find good information and practical advice. Just remember the poor schmo who truncated a table because of something he saw online, and then wondered where all the data went! (for the newbies, truncating a table means completely deleting all of the data)
Источник
Error codes in db2
Frequently faced mainframes Errors / Abdends and Complete List follows
SQLCODE -102 String constant is too long
SQLCODE -117 The number of values you are trying to INSERT
does not match the number of columns
SQLCODE -180 SQLSTATE 22007
Bad data in Date/Time/Timestamp
String representation of DATE, TIME, TIMESTAMP is invalid
SQLCODE -181 SQLSTATE 22007
Bad data in Date/Time/Timestamp
Value for DATE, TIME, TIMESTAMP is invalid
SQLCODE -199 Illegal use of the specified keyword.
SQLCODE -204 Object not defined to DB2
SQLCODE -205 Column name not in specified table
SQLCODE -206 Column does not exist in any table in the SELECT
SQLCODE -216
You need to use the same number of expressions on both sides of the comparison.
when using multiple operands in a comparison,
Correct example:
WHERE (E.SALARY, E.COMM) IN
(SELECT S.PAY, S.COMMISSION
Incorrect example:
WHERE (E.SALARY, E.COMM, E.BONUS) IN
(SELECT S.PAY, S.COMMISSION
SQLCODE +222 Trying to fetch a row that fell through a DELETE hole
SQLCODE +223 Trying to fetch a row that fell through an UPDATE hole
SQLCODE -224 FETCH cannot make an INSENSITIVE cursor SENSITIVE
SQLCODE -229 The locale specified in a SET LOCALE statement was not found.
SQLCODE +231 FETCH
but you did a BEFORE or AFTER and you are not on a valid row
SQLCODE +304 Value cannot be assigned to this host variable because it is out of range
SQLCODE -305 Null indicator needed
SQLCODE -311 Varchar, insert or update.
You didn’t set the -LEN field with the right data length
SQLCODE -482 he procedure returned no locators
SQLCODE -501 Cursor not open on FETCH
SQLCODE -502 Opening cursor that is already open
SQLCODE -503 Updating column which needs to be specified in FOR UPDATE OF
SQLCODE -530 SQLSTATE 23503
Referential integrity prevents the INSERT/UPDATE
SQLCODE -532 SQLSTATE 23504
Referential integrity (DELETE RESTRICT rule) prevents the DELETE
SQLCODE -536 SQLSTATE 42914
Referential integrity (DELETE RESTRICT rule) prevents the DELETE
SQLCODE -545 SQLSTATE 23513
Check constraint prevents the INSERT/UPDATE
SQLCODE -747 The table specified is not available
because tables and/or indexes need to be created.
SQLCODE +802 The null indicator was set to -2
because an arithmetic statement didn’t work.
SQLCODE -803 SQLSTATE 23505
Duplicate key on insert or update
SQLCODE -805
DBRM or package not found in plan
Is plan name correct?
SQLCODE -811 More than one row retrieved in SELECT INTO
SQLCODE -818 Plan and program: timestamp mismatch
SQLCODE -904 SQLSTATE 57011
Unavailable resource. Someone is locking the data you need
you may choose to terminate the program
SQLCODE -911 SQLSTATE 40000
Deadlock or timeout. Rollback has been done.
SQLCODE -913 SQLSTATE 40502
Your program was the victim of a deadlock or timeout.
NO rollback has been done.
You should do a ROLLBACK.
SQLCODE -922 Authorization needed
SQLCODE -927 The language interface was called but no connection had been
SQLCODE reference: All the sqlcodes from -991 to +883 in DB2 Version 7.
Top of Page
SQLCODE -991, Error: CALL ATTACH WAS UNABLE TO ESTABLISH AN IMPLICIT CONNECT OR OPEN TO DB2.
RC1= RC2=
SQLCODE -981, Error: THE SQL STATEMENT FAILED BECAUSE THE RRSAF CONNECTION IS NOT IN
A STATE THAT ALLOWS SQL OPERATIONS, REASON
SQLCODE -950, Error: THE LOCATION NAME SPECIFIED IN THE CONNECT STATEMENT IS INVALID OR NOT
LISTED IN THE COMMUNICATIONS DATABASE
SQLCODE -948, Error: DISTRIBUTED OPERATION IS INVALID
SQLCODE -947, Error: THE SQL STATEMENT FAILED BECAUSE IT WILL CHANGE A TABLE DEFINED WITH DATA CAPTURE
CHANGES, BUT THE DATA CANNOT BE PROPAGATED
SQLCODE -939, Error: ROLLBACK REQUIRED DUE TO UNREQUESTED ROLLBACK OF A REMOTE SERVER
SQLCODE -929, Error: FAILURE IN A CHANGED DATA CAPTURE EXIT:
SQLCODE -927, Error: THE LANGUAGE INTERFACE (LI) WAS CALLED WHEN THE CONNECTING ENVIRONMENT WAS NOT
ESTABLISHED. THE PROGRAM SHOULD BE INVOKED UNDER THE DSN COMMAND
SQLCODE -926, Error: ROLLBACK NOT VALID IN IMS OR CICS ENVIRONMENT
SQLCODE -925, Error: COMMIT NOT VALID IN IMS OR CICS ENVIRONMENT
SQLCODE -924, Error: DB2 CONNECTION INTERNAL ERROR, , ,
SQLCODE -923, Error: CONNECTION NOT ESTABLISHED: DB2 , REASON , TYPE , NAME
SQLCODE -922, Error: AUTHORIZATION FAILURE: ERROR. REASON
SQLCODE -919, Error: A ROLLBACK OPERATION IS REQUIRED
SQLCODE -918, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE A CONNECTION HAS BEEN LOST
SQLCODE -917, Error: BIND PACKAGE FAILED
SQLCODE -913, Error: UNSUCCESSFUL EXECUTION CAUSED BY DEADLOCK OR TIMEOUT. REASON CODE ,
TYPE OF RESOURCE , AND RESOURCE NAME
SQLCODE -911, Error: THE CURRENT UNIT OF WORK HAS BEEN ROLLED BACK DUE TO DEADLOCK OR TIMEOUT.
REASON ,TYPE OF RESOURCE , AND RESOURCE NAME
SQLCODE -910, Error: THE SQL STATEMENT CANNOT ACCESS AN OBJECT ON WHICH A DROP OR ALTER IS PENDING
SQLCODE -909, Error: THE OBJECT HAS BEEN DELETED OR ALTERED
SQLCODE -908, Error: ERROR USING AUTHORITY. BIND, REBIND, OR AUTO-REBIND OPERATION IS NOT ALLOWED
SQLCODE -906, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE THIS FUNCTION IS
DISABLED DUE TO A PRIOR ERROR
SQLCODE -905, Error: UNSUCCESSFUL EXECUTION DUE TO RESOURCE LIMIT BEING EXCEEDED,
RESOURCE NAME = LIMIT = CPU SECONDS ( SERVICE UNITS) DERIVED FROM
SQLCODE -904, Error: UNSUCCESSFUL EXECUTION CAUSED BY AN UNAVAILABLE RESOURCE. REASON ,
TYPE OF RESOURCE , AND RESOURCE NAME
SQLCODE -902, Error: POINTER TO ESSENTIAL CONTROL BLOCK(RDA/CT) HAS VALUE 0, REBIND REQUIRED
SQLCODE -901, Error: UNSUCCESSFUL EXECUTION CAUSED BY A SYSTEM ERROR THAT DOES NOT
PRECLUDE THE SUCCESSFUL EXECUTION OF SUBSEQUENT SQL STATEMENTS
SQLCODE -900, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE THE APPLICATION
PROCESS IS NOT CONNECTED TO AN APPLICATION SERVER
SQLCODE -882, Error: SAVEPOINT DOES NOT EXIST
SQLCODE -881, Error: A SAVEPOINT WITH NAME ALREADY EXISTS, BUT THIS SAVEPOINT NAME CANNOT BE REUSED
SQLCODE -880, Error: SAVEPOINT DOES NOT EXIST OR IS INVALID IN THIS CONTEXT
SQLCODE -879, Error: CREATE OR ALTER STATEMENT FOR CANNOT DEFINE A COLUMN, DISTINCT TYPE, FUNCTION OR
STORED PROCEDURE PARAMETER AS MIXED OR GRAPHIC WITH ENCODING SCHEME
SQLCODE -878, Error: THE PLAN_TABLE USED FOR EXPLAIN CANNOT BE ASCII
SQLCODE -877, Error: CCSID ASCII IS NOT ALLOWED FOR THIS DATABASE OR TABLE SPACE
SQLCODE -876, Error: CANNOT BE CREATED, REASON
SQLCODE -875, Error: CANNOT BE USED WITH THE ASCII DATA REFERENCED
SQLCODE -874, Error: THE ENCODING SCHEME SPECIFIED FOR THE MUST BE THE SAME AS THE
CONTAINING TABLE SPACE OR OTHER PARAMETERS
SQLCODE -873, Error: DATA ENCODED WITH DIFFERENT CCSIDS CANNOT BE REFERENCED IN THE SAME SQL STATEMENT
SQLCODE -872, Error: A VALID CCSID HAS NOT YET BEEN SPECIFIED FOR THIS SUBSYSTEM
SQLCODE -867, Error: INVALID SPECIFICATION OF A ROWID COLUMN
SQLCODE -846, Error: INVALID SPECIFICATION OF AN IDENTITY COLUMN
SQLCODE -843, Error: THE SET CONNECTION OR RELEASE STATEMENT MUST SPECIFY AN EXISTING CONNECTION
SQLCODE -842, Error: A CONNECTION TO x ALREADY EXISTS
SQLCODE -840, Error: TOO MANY ITEMS RETURNED IN A SELECT OR INSERT LIST
SQLCODE -822, Error: THE SQLDA CONTAINS AN INVALID DATA ADDRESS OR INDICATOR VARIABLE ADDRESS
SQLCODE -820, Error: THE SQL STATEMENT CANNOT BE PROCESSED BECAUSE CONTAINS A VALUE THAT
IS NOT VALID IN THIS RELEASE
SQLCODE -818, Error: THE PRECOMPILER-GENERATED TIMESTAMP IN THE LOAD MODULE IS DIFFERENT
FROM THE BIND TIMESTAMP BUILT FROM THE DBRM
SQLCODE -817, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE THE STATEMENT WILL RESULT
IN A PROHIBITED UPDATE OPERATION
SQLCODE -815, Error: A GROUP BY OR HAVING CLAUSE IS IMPLICITLY OR EXPLICITLY SPECIFIED
IN A SUBSELECT OF A BASIC PREDICATE OR A SET CLAUSE OF AN UPDATE STATEMENT
SQLCODE -812, Error: THE SQL STATEMENT CANNOT BE PROCESSED BECAUSE A BLANK COLLECTION-ID
WAS FOUND IN THE CURRENTPACKAGESET SPECIAL REGISTER WHILE TRYING TO FORM A QUALIFIED PACKAGE
NAME FOR PROGRAM USING PLAN
SQLCODE -811, Error: THE RESULT OF AN EMBEDDED SELECT STATEMENT OR A SUBSELECT IN THE SET
CLAUSE OF AN UPDATE STATEMENT IS A TABLE OF MORE THAN ONE ROW, OR THE RESULT OF
A SUBQUERY OF A BASIC PREDICATE IS MORE THAN VALUE
SQLCODE -808, Error: THE CONNECT STATEMENT IS NOT CONSISTENT WITH THE FIRST CONNECT STATEMENT
SQLCODE -807, Error: ACCESS DENIED: PACKAGE IS NOT ENABLED FOR ACCESS FROM
SQLCODE -805, Error: DBRM OR PACKAGE NAME NOT FOUND IN PLAN . REASON
SQLCODE -803, Error: AN INSERTED OR UPDATED VALUE IS INVALID BECAUSE INDEX IN
INDEX SPACE CONSTRAINS COLUMNS OF THE TABLE SO NO TWO ROWS CAN CONTAIN DUPLICATE
VALUES IN THOSE COLUMNS. RID OF EXISTING ROW IS X»
SQLCODE -802, Error: EXCEPTION ERROR HAS OCCURRED DURING OPERATION ON DATA, POSITION
SQLCODE -798, Error: YOU CANNOT INSERT A VALUE INTO A COLUMN THAT IS DEFINED WITH THE OPTION
GENERATED ALWAYS. COLUMN NAME
SQLCODE -797, Error: ATTEMPT TO CREATE TRIGGER WITH AN UNSUPPORTED TRIGGERED SQL STATEMENT
SQLCODE -771, Error: INVALID SPECIFICATION OF A ROWID COLUMN
SQLCODE -770, Error: TABLE CANNOT HAVE A LOB COLUMN UNLESS IT ALSO HAS A ROWID COLUMN
SQLCODE -768, Error: AN AUXILIARY TABLE ALREADY EXISTS FOR THE SPECIFIED COLUMN OR PARTITION
SQLCODE -767, Error: MISSING OR INVALID COLUMN SPECIFICATION FOR INDEX
SQLCODE -766, Error: THE OBJECT OF A STATEMENT IS AN AUXILIARY TABLE FOR WHICH THE REQUESTED
OPERATION IS NOT PERMITTED
SQLCODE -765, Error: TABLE IS NOT COMPATIBLE WITH DATABASE
SQLCODE -764, Error: A LOB TABLE SPACE AND ITS ASSOCIATED BASE TABLE SPACE MUST BE IN THE SAME DATABASE
SQLCODE -763, Error: INVALID TABLE SPACE NAME
SQLCODE -752, Error: THE CONNECT STATEMENT IS INVALID BECAUSE THE PROCESS IS NOT IN THE CONNECTABLE STATE
SQLCODE -751, Error: (SPECIFIC NAME ) ATTEMPTED TO EXECUTE AN SQL STATEMENT THAT IS NOT ALLOWED
SQLCODE -750, Error: THE SOURCE TABLE CANNOT BE RENAMED BECAUSE IT IS REFERENCED
IN EXISTING VIEW DEFINITIONS OR TRIGGER DEFINITIONS
SQLCODE -748, Error: AN INDEX ALREADY EXISTS ON AUXILIARY TABLE
SQLCODE -747, Error: TABLE IS NOT AVAILABLE UNTIL THE AUXILIARY TABLES AND INDEXES
FOR ITS EXTERNALLY STORED COLUMNS HAVE BEEN CREATED
SQLCODE -746, Error: THE SQL STATEMENT IN AN EXTERNAL FUNCTION, TRIGGER,
OR IN STORED PROCEDURE VIOLATES THE NESTING SQL RESTRICTION
SQLCODE -742, Error: DSNDB07 IS THE IMPLICIT WORK FILE DATABASE
SQLCODE -741, Error: A DATABASE IS ALREADY DEFINED FOR MEMBER
SQLCODE -740, Error: FUNCTION IS DEFINED WITH THE OPTION MODIFIES SQL DATA
WHICH IS NOT VALID IN THE CONTEXT IN WHICH IT WAS INVOKED
SQLCODE -739, Error: ALTER FUNCTION FAILED BECAUSE FUNCTIONS CANNOT MODIFY DATA WHEN THEY ARE
PROCESSED IN PARALLEL
SQLCODE -737, Error: IMPLICIT TABLE SPACE NOT ALLOWED
SQLCODE -736, Error: INVALID OBID SPECIFIED
SQLCODE -735, Error: DATABASE CANNOT BE ACCESSED BECAUSE IT IS NO LONGER A SHARED DATABASE
SQLCODE -734, Error: THE ROSHARE ATTRIBUTE OF A DATABASE CANNOT BE ALTERED FROM ROSHARE READ
SQLCODE -733, Error: THE DESCRIPTION OF A TABLE SPACE, INDEX SPACE, OR TABLE IN A ROSHARE READ DATABASE
MUST BE CONSISTENT WITH ITS DESCRIPTION IN THE OWNER SYSTEM
SQLCODE -732, Error: THE DATABASE IS DEFINED ON THIS SUBSYSTEM WITH THE ROSHARE READ ATTRIBUTE BUT THE
TABLE SPACE OR INDEX SPACE HAS NOT BEEN DEFINED ON THE OWNING SUBSYSTEM
SQLCODE -731, Error: USER-DEFINED DATASET MUST BE DEFINED WITH SHAREOPTIONS (1,3)
SQLCODE -728, Error: DATA TYPE IS NOT ALLOWED IN DB2 PRIVATE PROTOCOL PROCESSING
SQLCODE -726, Error: BIND ERROR ATTEMPTING TO REPLACE PACKAGE = . THERE ARE ENABLE OR DISABLE ENTRIES
CURRENTLY ASSOCIATED WITH THE PACKAGE
SQLCODE -725, Error: THE SPECIAL REGISTER AT LOCATION WAS SUPPLIED AN INVALID VALUE
SQLCODE -723, Error: AN ERROR OCCURRED IN A TRIGGERED SQL STATEMENT IN TRIGGER , SECTION NUMBER .
INFORMATION RETURNED: SQLCODE , SQLSTATE , AND MESSAGE TOKENS
SQLCODE -722, Error: ERROR USING AUTHORITY PACKAGE DOES NOT EXIST
SQLCODE -721, Error: BIND ERROR FOR PACKAGE = CONTOKEN = »X IS NOT UNIQUE SO IT CANNOT BE CREATED
SQLCODE -719, Error: BIND ADD ERROR USING AUTHORITY PACKAGE ALREADY EXISTS
SQLCODE -718, Error: REBIND OF PACKAGE FAILED BECAUSE IBMREQD OF IS INVALID
SQLCODE -717, Error: FOR WITH MARK FAILED BECAUSE DEPENDS ON FUNCTIONS OF THE RELEASE FROM WHICH
FALLBACK HAS OCCURRED
SQLCODE -716, Error: PROGRAM PRECOMPILED WITH INCORRECT LEVEL FOR THIS RELEASE
SQLCODE -715, Error: PROGRAM WITH MARK FAILED BECAUSE IT DEPENDS ON FUNCTIONS OF THE RELEASE FROM
WHICH FALLBACK HAS OCCURRED
SQLCODE -713, Error: THE REPLACEMENT VALUE FOR IS INVALID
SQLCODE -697, Error: OLD OR NEW CORRELATION NAMES ARE NOT ALLOWED IN A TRIGGER DEFINED WITH THE FOR EACH
STATEMENT CLAUSE. OLD_TABLE OR NEW_TABLE NAMES ARE NOT ALLOWED IN A TRIGGER WITH THE BEFORE CLAUSE
SQLCODE -696, Error: THE DEFINITION OF TRIGGER INCLUDES AN INVALID USE OF CORRELATION
NAME OR TRANSITION TABLE NAME . REASON CODE=
SQLCODE -693, Error: THE COLUMN IN DDL REGISTRATION TABLE OR INDEX IS NOT DEFINED PROPERLY
SQLCODE -692, Error: THE REQUIRED UNIQUE INDEX FOR DDL REGISTRATION TABLE DOES NOT EXIST
SQLCODE -691, Error: THE REQUIRED REGISTRATION TABLE DOES NOT EXIST
SQLCODE -690, Error: THE STATEMENT IS REJECTED BY DATA DEFINITION CONTROL SUPPORT. REASON
SQLCODE -689, Error: TOO MANY COLUMNS DEFINED FOR A DEPENDENT TABLE
SQLCODE -688, Error: INCORRECT DATA RETURNED FROM FIELD PROCEDURE, ,
SQLCODE -687, Error: FIELD TYPES INCOMPARABLE
SQLCODE -686, Error: COLUMN DEFINED WITH A FIELD PROCEDURE CAN NOT COMPARE WITH ANOTHER COLUMN WITH
DIFFERENT FIELD PROCEDURE
SQLCODE -685, Error: INVALID FIELD TYPE,
SQLCODE -684, Error: THE LENGTH OF LITERAL LIST BEGINNING IS TOO LONG
SQLCODE -683, Error: THE SPECIFICATION FOR COLUMN, DISTINCT TYPE, FUNCTION, OR PROCEDURE CONTAINS
INCOMPATIBLE CLAUSES
SQLCODE -682, Error: FIELD PROCEDURE COULD NOT BE LOADED
SQLCODE -681, Error: COLUMN IN VIOLATION OF INSTALLATION DEFINED FIELD PROCEDURE RT: , RS: , MSG:
SQLCODE -680, Error: TOO MANY COLUMNS SPECIFIED FOR A TABLE, VIEW, OR TABLE FUNCTION
SQLCODE -679, Error: THE OBJECT CANNOT BE CREATED BECAUSE A DROP IS PENDING ON THE OBJECT
SQLCODE -678, Error: THE LITERAL SPECIFIED FOR THE INDEX LIMIT KEY MUST CONFORM
TO THE DATA TYPE OF THE CORRESPONDING COLUMN
SQLCODE -677, Error: INSUFFICIENT VIRTUAL STORAGE FOR BUFFERPOOL EXPANSION
SQLCODE -676, Error: ONLY A 4K PAGE BUFFERPOOL CAN BE USED FOR AN INDEX
SQLCODE -672, Error: OPERATION DROP NOT ALLOWED ON TABLE
SQLCODE -671, Error: THE BUFFERPOOL ATTRIBUTE OF THE TABLE SPACE CANNOT BE ALTERED AS SPECIFIED BECAUSE IT
WOULD CHANGE THE PAGE SIZE OF THE TABLE SPACE
SQLCODE -670, Error: THE RECORD LENGTH OF THE TABLE EXCEEDS THE PAGE SIZE LIMIT
SQLCODE -669, Error: A TABLE IN A PARTITIONED TABLE SPACE CANNOT BE EXPLICITLY DROPPED
SQLCODE -668, Error: THE COLUMN CANNOT BE ADDED TO THE TABLE BECAUSE THE TABLE HAS AN EDIT PROCEDURE
SQLCODE -667, Error: THE CLUSTERING INDEX FOR A PARTITIONED TABLE SPACE CANNOT BE EXPLICITLY DROPPED
SQLCODE -666, Error: CANNOT BE EXECUTED BECAUSE IS IN PROGRESS
SQLCODE -665, Error: THE PART CLAUSE OF AN ALTER STATEMENT IS OMITTED OR INVALID
SQLCODE -663, Error: THE NUMBER OF KEY LIMIT VALUES IS EITHER ZERO, OR GREATER THAN
THE NUMBER OF COLUMNS IN THE KEY OF INDEX
SQLCODE -662, Error: A PARTITIONED INDEX CANNOT BE CREATED ON A NON-PARTITIONED TABLE SPACE
SQLCODE -661, Error: INDEX CANNOT BE CREATED ON PARTITIONED TABLE SPACE BECAUSE THE NUMBER OF PART
SPECIFICATIONS IS NOT EQUAL TO THE NUMBER OF PARTITIONS OF THE TABLE SPACE
SQLCODE -658, Error: A CANNOT BE DROPPED USING THE STATEMENT
SQLCODE -655, Error: THE CREATE OR ALTER STOGROUP IS INVALID BECAUSE THE STORAGE GROUP WOULD HAVE BOTH
SPECIFIC AND NON-SPECIFIC VOLUME IDS
SQLCODE -653, Error: TABLE IN PARTITIONED TABLE SPACE IS NOT AVAILABLE BECAUSE
ITS PARTITIONED INDEX HAS NOT BEEN CREATED
SQLCODE -652, Error: VIOLATION OF INSTALLATION DEFINED EDIT OR VALIDATION PROCEDURE
SQLCODE -651, Error: TABLE DESCRIPTION EXCEEDS MAXIMUM SIZE OF OBJECT DESCRIPTOR
SQLCODE -650, Error: THE ALTER INDEX CANNOT BE EXECUTED, REASON
SQLCODE -647, Error: BUFFERPOOL CANNOT BE SPECIFIED BECAUSE IT HAS NOT BEEN ACTIVATED
SQLCODE -646, Error: TABLE CANNOT BE CREATED IN SPECIFIED TABLE SPACE BECAUSE IT ALREADY CONTAINS A TABLE
SQLCODE -644, Error: INVALID VALUE SPECIFIED FOR KEYWORD IN STATEMENT
SQLCODE -643, Error: CHECK CONSTRAINT EXCEEDS MAXIMUM ALLOWABLE LENGTH
SQLCODE -642, Error: TOO MANY COLUMNS IN UNIQUE CONSTRAINTS
SQLCODE -640, Error: LOCKSIZE ROW CANNOT BE SPECIFIED BECAUSE TABLE IN THIS TABLESPACE HAS TYPE 1 INDEX
SQLCODE -639, Error: A NULLABLE COLUMN OF A FOREIGN KEY WITH A DELETE RULE OF SET NULL CANNOT BE A COLUMN
OF THE KEY OF A PARTITIONED INDEX
SQLCODE -638, Error: TABLE CANNOT BE CREATED BECAUSE COLUMN DEFINITION IS MISSING
SQLCODE -637, Error: DUPLICATE KEYWORD
SQLCODE -635, Error: THE DELETE RULES CANNOT BE DIFFERENT OR CANNOT BE SET NULL
SQLCODE -634, Error: THE DELETE RULE MUST NOT BE CASCADE
SQLCODE -633, Error: THE DELETE RULE MUST BE
SQLCODE -632, Error: THE TABLE CANNOT BE DEFINED AS A DEPENDENT OF BECAUSE OF DELETE RULE RESTRICTIONS
SQLCODE -631, Error: FOREIGN KEY IS TOO LONG OR HAS TOO MANY COLUMNS
SQLCODE -630, Error: THE WHERE NOT NULL SPECIFICATION IS INVALID FOR TYPE 1 INDEXES
SQLCODE -629, Error: SET NULL CANNOT BE SPECIFIED BECAUSE FOREIGN KEY CANNOT CONTAIN NULL VALUES
SQLCODE -628, Error: THE CLAUSES ARE MUTUALLY EXCLUSIVE
SQLCODE -627, Error: THE ALTER STATEMENT IS INVALID BECAUSE THE PAGESET HAS USER-MANAGED DATA SETS
SQLCODE -626, Error: THE ALTER STATEMENT IS NOT EXECUTABLE BECAUSE THE PAGE SET IS NOT STOPPED
SQLCODE -625, Error: TABLE DOES NOT HAVE AN INDEX TO ENFORCE THE UNIQUENESS OF THE PARENT KEY
SQLCODE -624, Error: TABLE ALREADY HAS A PRIMARY KEY
SQLCODE -623, Error: A CLUSTERING INDEX ALREADY EXISTS ON TABLE
SQLCODE -622, Error: FOR MIXED DATA IS INVALID BECAUSE THE MIXED DATA INSTALL OPTION IS NO
SQLCODE -621, Error: DUPLICATE DBID WAS DETECTED AND PREVIOUSLY ASSIGNED TO
SQLCODE -620, Error: KEYWORD IN STATEMENT IS NOT PERMITTED FOR A SPACE IN THE DATABASE
SQLCODE -619, Error: OPERATION DISALLOWED BECAUSE THE WORK FILE DATABASE IS NOT STOPPED
SQLCODE -618, Error: OPERATION IS NOT ALLOWED ON SYSTEM DATABASES
SQLCODE -617, Error: A TYPE 1 INDEX IS NOT VALID FOR TABLE
SQLCODE -616, Error: CANNOT BE DROPPED BECAUSE IT IS REFERENCED BY
SQLCODE -615, Error: IS NOT ALLOWED ON A PACKAGE IN USE
SQLCODE -614, Error: THE INDEX CANNOT BE CREATED OR THE LENGTH OF THE COLUMN CANNOT BE CHANGED BECAUSE THE
SUM OF THE INTERNAL LENGTHS OF THE IDENTIFIED COLUMNS IS GREATER THAN THE ALLOWABLE MAXIMUM
SQLCODE -613, Error: THE PRIMARY KEY OR A UNIQUE CONSTRAINT IS TOO LONG OR HAS TOO MANY COLUMNS
SQLCODE -612, Error: IS A DUPLICATE COLUMN NAME
SQLCODE -607, Error: OPERATION OR OPTION IS NOT DEFINED FOR THIS OBJECT
SQLCODE -604, Error: A DATA TYPE DEFINITION SPECIFIES AN INVALID LENGTH, PRECISION, OR SCALE ATTRIBUTE
SQLCODE -603, Error: A UNIQUE INDEX CANNOT BE CREATED BECAUSE THE TABLE CONTAINS ROWS WHICH ARE DUPLICATES
WITH RESPECT TO THE VALUES OF THE IDENTIFIED COLUMNS
SQLCODE -602, Error: TOO MANY COLUMNS SPECIFIED IN A CREATE INDEX
SQLCODE -601, Error: THE NAME OF THE OBJECT TO BE CREATED OR THE TARGET OF A RENAME STATEMENT IS IDENTICAL
TO THE EXISTING NAME OF THE OBJECT TYPE
SQLCODE -594, Error: ATTEMPT TO CREATE A NULLABLE ROWID OR DISTINCT TYPE COLUMN
SQLCODE -593, Error: NOT NULL MUST BE SPECIFIED FOR ROWID OR DISTINCT TYPE COLUMN
SQLCODE -592, Error: NOT AUTHORIZED TO CREATE FUNCTIONS OR PROCEDURES IN WLM ENVIRONMENT
SQLCODE -590, Error: PARAMETER NAME IS NOT UNIQUE IN THE CREATE FOR ROUTINE
SQLCODE -586, Error: THE TOTAL LENGTH OF THE CURRENT PATH SPECIAL REGISTER CANNOT EXCEED 254 CHARACTERS
SQLCODE -585, Error: THE SCHEMA NAME CANNOT APPEAR MORE THAN ONCE IN THE CURRENT PATH
SQLCODE -582, Error: THE SEARCH-CONDITION IN A SEARCHED-WHEN-CLAUSE CANNOT BE A QUANTIFIED PREDICATE, IN
PREDICATE, OR AN EXISTS PREDICATE
SQLCODE -581, Error: THE DATA TYPES OF THE RESULT-EXPRESSIONS OF A CASE EXPRESSION ARE NOT COMPATIBLE
SQLCODE -580, Error: THE RESULT-EXPRESSIONS OF A CASE EXPRESSION CANNOT ALL BE NULL
SQLCODE -579, Error: ATTEMPTED TO READ DATA WHEN THE DEFINITION OF THE FUNCTION OR
PROCEDURE DID NOT SPECIFY THIS ACTION
SQLCODE -577, Error: ATTEMPTED TO MODIFY DATA WHEN THE DEFINITION OF THE FUNCTION OR
PROCEDURE DID NOT SPECIFY THIS ACTION
SQLCODE -574, Error: THE SPECIFIED DEFAULT VALUE OR IDENTITY ATTRIBUTE VALUE CONFLICTS WITH
THE DEFINITION OF COLUMN
SQLCODE -573, Error: TABLE DOES NOT HAVE A UNIQUE KEY WITH THE SPECIFIED COLUMN NAMES
SQLCODE -571, Error: THE STATEMENT WOULD RESULT IN A MULTIPLE SITE UPDATE
SQLCODE -567, Error: AUTHORIZATION ERROR USING AUTHORITY PACKAGE = PRIVILEGE =
SQLCODE -559, Error: ALL AUTHORIZATION FUNCTIONS HAVE BEEN DISABLED
SQLCODE -558, Error: INVALID CLAUSE OR COMBINATION OF CLAUSES ON A GRANT OR REVOKE
SQLCODE -557, Error: INCONSISTENT GRANT/REVOKE KEYWORD . PERMITTED KEYWORDS ARE
SQLCODE -556, Error: CANNOT HAVE THE PRIVILEGE REVOKED BY BECAUSE THE REVOKEE DOES NOT POSSESS THE
PRIVILEGE OR THE REVOKER DID NOT MAKE THE GRANT
SQLCODE -555, Error: AN AUTHORIZATION ID CANNOT REVOKE A PRIVILEGE FROM ITSELF
SQLCODE -554, Error: AN AUTHORIZATION ID CANNOT GRANT A PRIVILEGE TO ITSELF
SQLCODE -553, Error: SPECIFIED IS NOT ONE OF THE VALID AUTHORIZATION IDS
SQLCODE -552, Error: DOES NOT HAVE THE PRIVILEGE TO PERFORM OPERATION
SQLCODE -551, Error: DOES NOT HAVE THE PRIVILEGE TO PERFORM OPERATION ON OBJECT
SQLCODE -549, Error: THE STATEMENT IS NOT ALLOWED FOR BECAUSE THE BIND OPTION DYNAMICRULES(RUN)
IS NOT IN EFFECT FOR
SQLCODE -548, Error: A CHECK CONSTRAINT THAT IS DEFINED WITH IS INVALID
SQLCODE -546, Error: THE CHECK CONSTRAINT IS INVALID
SQLCODE -544, Error: THE CHECK CONSTRAINT SPECIFIED IN THE ALTER TABLE STATEMENT CANNOT BE ADDED BECAUSE AN
EXISTING ROW VIOLATES THE CHECK CONSTRAINT
SQLCODE -543, Error: A ROW IN A PARENT TABLE CANNOT BE DELETED BECAUSE THE CHECK CONSTRAINT
RESTRICTS THE DELETION
SQLCODE -539, Error: TABLE DOES NOT HAVE A PRIMARY KEY
SQLCODE -538, Error: FOREIGN KEY DOES NOT CONFORM TO THE DESCRIPTION OF A PARENT KEY OF TABLE
SQLCODE -537, Error: THE PRIMARY KEY CLAUSE, A FOREIGN KEY CLAUSE, OR A UNIQUE CLAUSE IDENTIFIES
COLUMN MORE THAN ONCE
SQLCODE -536, Error: THE DELETE STATEMENT IS INVALID BECAUSE TABLE CAN BE AFFECTED BY THE OPERATION
SQLCODE -534, Error: THE PRIMARY KEY CANNOT BE UPDATED BECAUSE OF MULTIPLE-ROW UPDATE
SQLCODE -533, Error: INVALID MULTIPLE-ROW INSERT
SQLCODE -532, Error: THE RELATIONSHIP RESTRICTS THE DELETION OF ROW WITH RID X»
SQLCODE -531, Error: PARENT KEY IN A PARENT ROW CANNOT BE UPDATED BECAUSE IT HAS ONE OR
MORE DEPENDENT ROWS IN RELATIONSHIP
SQLCODE -530, Error: THE INSERT OR UPDATE VALUE OF FOREIGN KEY IS INVALID
SQLCODE -526, Error: THE REQUESTED OPERATION OR USAGE DOES NOT APPLY TO TEMPORARY TABLE
SQLCODE -525, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE IT WAS IN ERROR AT
BIND TIME FOR SECTION = PACKAGE = CONSISTENCY TOKEN = X»
SQLCODE -519, Error: THE PREPARE STATEMENT IDENTIFIES THE SELECT STATEMENT OF THE OPENED CURSOR
SQLCODE -518, Error: THE EXECUTE STATEMENT DOES NOT IDENTIFY A VALID PREPARED STATEMENT
SQLCODE -517, Error: CURSOR CANNOT BE USED BECAUSE ITS STATEMENT NAME DOES NOT IDENTIFY A
PREPARED SELECT STATEMENT
SQLCODE -516, Error: THE DESCRIBE FOR STATIC STATEMENT DOES NOT IDENTIFY A PREPARED STATEMENT
SQLCODE -514, Error: THE CURSOR IS NOT IN A PREPARED STATE
SQLCODE -513, Error: THE ALIAS MUST NOT BE DEFINED ON ANOTHER LOCAL OR REMOTE ALIAS
SQLCODE -512, Error: STATEMENT REFERENCE TO REMOTE OBJECT IS INVALID
SQLCODE -511, Error: THE FOR UPDATE CLAUSE CANNOT BE SPECIFIED BECAUSE THE TABLE DESIGNATED
BY THE CURSOR CANNOT BE MODIFIED
SQLCODE -510, Error: THE TABLE DESIGNATED BY THE CURSOR OF THE UPDATE OR DELETE STATEMENT
CANNOT BE MODIFIED
SQLCODE -509, Error: THE TABLE IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT THE SAME TABLE
DESIGNATED BY THE CURSOR
SQLCODE -508, Error: THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT POSITIONED ON A ROW
SQLCODE -507, Error: THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT OPEN
SQLCODE -504, Error: THE CURSOR NAME IS NOT DEFINED
SQLCODE -503, Error: A COLUMN CANNOT BE UPDATED BECAUSE IT IS NOT IDENTIFIED IN THE UPDATE CLAUSE OF THE
SELECT STATEMENT OF THE CURSOR
SQLCODE -502, Error: THE CURSOR IDENTIFIED IN AN OPEN STATEMENT IS ALREADY OPEN
SQLCODE -501, Error: THE CURSOR IDENTIFIED IN A FETCH OR CLOSE STATEMENT IS NOT OPEN
SQLCODE -500, Error: THE IDENTIFIED CURSOR WAS CLOSED WHEN THE CONNECTION WAS DESTROYED
SQLCODE -499, Error: CURSOR HAS ALREADY BEEN ASSIGNED TO THIS OR ANOTHER RESULT SET FROM PROCEDURE
SQLCODE -497, Error: THE MAXIMUM LIMIT OF INTERNAL IDENTIFIERS HAS BEEN EXCEEDED FOR DATABASE
SQLCODE -496, Error: THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE IT REFERENCES A RESULT SET THAT WAS NOT
CREATED BY THE CURRENT SERVER
SQLCODE -495, Error: ESTIMATED PROCESSOR COST OF PROCESSOR SECONDS ( SERVICE UNITS) IN COST CATEGORY
EXCEEDS A RESOURCE LIMIT ERROR THRESHOLD OF SERVICE UNITS
SQLCODE -492, Error: THE CREATE FUNCTION FOR HAS A PROBLEM WITH PARAMETER NUMBER . IT MAY INVOLVE A
MISMATCH WITH A SOURCE FUNCTION
SQLCODE -491, Error: CREATE STATEMENT FOR USER-DEFINED FUNCTION MUST HAVE A RETURNS CLAUSE, AND EITHER THE
EXTERNAL CLAUSE (WITH OTHER REQUIRED KEYWORDS) OR THE SOURCE CLAUSE
SQLCODE -490, Error: NUMBER DIRECTLY SPECIFIED IN AN SQL STATEMENT IS OUTSIDE THE RANGE OF ALLOWABLE
VALUES IN THIS CONTEXT (, )
SQLCODE -487, Error: ATTEMPTED TO EXECUTE AN SQL STATEMENT WHEN THE DEFINITION OF THE FUNCTION OR
PROCEDURE DID NOT SPECIFY THIS ACTION
SQLCODE -483, Error: IN CREATE FUNCTION FOR STATEMENT, THE NUMBER OF PARAMETERS DOES NOT MATCH THE NUMBER
OF PARAMETERS OF THE SOURCE FUNCTION
SQLCODE -482, Error: THE PROCEDURE RETURNED NO LOCATORS
SQLCODE -480, Error: THE PROCEDURE HAS NOT YET BEEN CALLED
SQLCODE -478, Error: DROP OR REVOKE ON OBJECT TYPE CANNOT BE PROCESSED BECAUSE OBJECT OF TYPE IS
DEPENDENT ON IT
SQLCODE -476, Error: REFERENCE TO FUNCTION WAS NAMED WITHOUT A SIGNATURE, BUT THE FUNCTION IS NOT UNIQUE
WITHIN ITS SCHEMA
SQLCODE -475, Error: THE RESULT TYPE OF THE SOURCE FUNCTION CANNOT BE CAST TO THE RETURNS TYPE OF THE
USER-DEFINED FUNCTION
SQLCODE -473, Error: A USER DEFINED DATA TYPE CANNOT BE CALLED THE SAME NAME AS A SYSTEM PREDEFINED TYPE
(BUILT-IN TYPE)
SQLCODE -472, Error: CURSOR WAS LEFT OPEN BY EXTERNAL FUNCTION (SPECIFIC NAME )
SQLCODE -471, Error: INVOCATION OF FUNCTION OR PROCEDURE FAILED DUE TO REASON
SQLCODE -470, Error: SQL CALL STATEMENT SPECIFIED A NULL VALUE FOR INPUT PARAMETER , BUT THE STORED
PROCEDURE DOES NOT SUPPORT NULL VALUES
SQLCODE -469, Error: SQL CALL STATEMENT MUST SPECIFY AN OUTPUT HOST VARIABLE FOR PARAMETER
SQLCODE -461, Error: A VALUE WITH DATA TYPE CANNOT BE CAST TO TYPE
SQLCODE -458, Error: IN A REFERENCE TO FUNCTION BY SIGNATURE, A MATCHING FUNCTION COULD NOT BE FOUND
SQLCODE -457, Error: A FUNCTION OR DISTINCT TYPE CANNOT BE CALLED SINCE IT IS RESERVED FOR SYSTEM USE
SQLCODE -456, Error: IN CREATE FUNCTION FOR , THE SPECIFIC NAME ALREADY EXISTS IN THE SCHEMA
SQLCODE -455, Error: IN CREATE FUNCTION FOR , THE SCHEMA NAME PROVIDED FOR THE SPECIFIC NAME DOES NOT
MATCH THE SCHEMA NAME OF THE FUNCTION
SQLCODE -454, Error: THE SIGNATURE PROVIDED IN THE CREATE FUNCTION STATEMENT FOR MATCHES THE SIGNATURE OF
SOME OTHER FUNCTION ALREADY EXISTING IN THE SCHEMA
SQLCODE -453, Error: THERE IS A PROBLEM WITH THE RETURNS CLAUSE IN THE CREATE FUNCTION STATEMENT FOR
SQLCODE -451, Error: THE DEFINITION, IN THE CREATE FUNCTION FOR CONTAINS DATA TYPE WHICH IS NOT
APPROPRIATE FOR AN EXTERNAL FUNCTION WRITTEN IN THE GIVEN LANGUAGE
SQLCODE -450, Error: USER-DEFINED FUNCTION OR STORED PROCEDURE , PARAMETER NUMBER , OVERLAYED STORAGE
BEYOND ITS DECLARED LENGTH
SQLCODE -449, Error: CREATE OR ALTER STATEMENT FOR FUNCTION OR PROCEDURE CONTAINS AN INVALID FORMAT OF THE
EXTERNAL NAME CLAUSE OR IS MISSING THE EXTERNAL NAME CLAUSE
SQLCODE -444, Error: USER PROGRAM COULD NOT BE FOUND
SQLCODE -441, Error: INVALID USE OF ‘DISTINCT’ OR ‘ALL’ WITH SCALAR FUNCTION
SQLCODE -440, Error: NO BY THE NAME HAVING COMPATIBLE ARGUMENTS WAS FOUND IN THE CURRENT PATH
SQLCODE -438, Error: APPLICATION RAISED ERROR WITH DIAGNOSTIC TEXT:
SQLCODE -435, Error: AN INVALID SQLSTATE IS SPECIFIED IN THE FUNCTION RAISE_ERROR OR IN A SIGNAL
SQLSTATE STATEMENT
SQLCODE -433, Error: VALUE IS TOO LONG
SQLCODE -430, ERROR: (SPECIFIC NAME ) HAS ABNORMALLY TERMINATED
SQLCODE -427, Error: DYNAMIC ROLLBACK NOT VALID AT AN APPLICATION SERVER WHERE UPDATES ARE NOT ALLOWED
SQLCODE -426, Error: DYNAMIC COMMIT NOT VALID AT AN APPLICATION SERVER WHERE UPDATES ARE NOT ALLOWED
SQLCODE -423, Error: INVALID VALUE FOR LOCATOR IN POSITION
SQLCODE -421, Error: THE OPERANDS OF A UNION OR UNION ALL DO NOT HAVE THE SAME NUMBER OF COLUMNS
SQLCODE -420, Error: THE VALUE OF A CHARACTER STRING ARGUMENT WAS NOT ACCEPTABLE TO THE FUNCTION
SQLCODE -419, Error: A DECIMAL DIVIDE OPERATION IS INVALID BECAUSE THE RESULT WOULD HAVE A NEGATIVE SCALE
SQLCODE -418, Error: A STATEMENT STRING TO BE PREPARED CONTAINS AN INVALID USE OF PARAMETER MARKERS
SQLCODE -417, Error: A STATEMENT STRING TO BE PREPARED INCLUDES PARAMETER MARKERS AS THE OPERANDS
OF THE SAME OPERATOR
SQLCODE -416, Error: AN OPERAND OF A UNION CONTAINS A LONG STRING COLUMN
SQLCODE -415, Error: THE CORRESPONDING COLUMNS, , OF THE OPERANDS OF A UNION OR A UNION ALL DO NOT HAVE
COMPARABLE COLUMN DESCRIPTIONS
SQLCODE -414, Error: A LIKE PREDICATE IS INVALID BECAUSE THE FIRST OPERAND IS NOT A STRING
SQLCODE -413, Error: OVERFLOW OCCURRED DURING NUMERIC DATA TYPE CONVERSION
SQLCODE -412, Error: THE SELECT CLAUSE OF A SUBQUERY SPECIFIES MULTIPLE COLUMNS
SQLCODE -411, Error: CURRENT SQLID CANNOT BE USED IN A STATEMENT THAT REFERENCES REMOTE OBJECTS
SQLCODE -410, Error: THE FLOATING POINT LITERAL CONTAINS MORE THAN 30 CHARACTERS
SQLCODE -409, Error: INVALID OPERAND OF A COUNT FUNCTION
SQLCODE -408, Error: THE VALUE IS NOT COMPATIBLE WITH THE DATA TYPE OF ITS TARGET
SQLCODE -406, Error: A CALCULATED OR DERIVED NUMERIC VALUE IS NOT WITHIN THE RANGE OF ITS OBJECT COLUMN
SQLCODE -405, Error: THE NUMERIC LITERAL CANNOT BE USED AS SPECIFIED BECAUSE IT IS OUT OF RANGE
SQLCODE -404, Error: THE SQL STATEMENT SPECIFIES A STRING THAT IS TOO LONG
SQLCODE -402, Error: AN ARITHMETIC FUNCTION OR OPERATOR IS APPLIED TO CHARACTER OR DATETIME DATA
SQLCODE -401, Error: THE OPERANDS OF AN ARITHMETIC OR COMPARISON OPERATION ARE NOT COMPARABLE
SQLCODE -400, Error: THE CATALOG HAS THE MAXIMUM NUMBER OF USER DEFINED INDEXES
SQLCODE -399, Error: ATTEMPTED TO INSERT AN INVALID VALUE INTO A ROWID COLUMN
SQLCODE -398, Error: A LOCATOR WAS REQUESTED FOR HOST VARIABLE NUMBER BUT THE VARIABLE IS NOT A LOB
SQLCODE -397, Error: THE OPTION GENERATED IS SPECIFIED WITH A COLUMN THAT IS NOT A ROW ID OR DISTINCT
TYPE BASED ON A ROW ID
SQLCODE -396, Error: ATTEMPTED TO EXECUTE AN SQL STATEMENT DURING FINAL CALL PROCESSING
SQLCODE -392, Error: SQLDA PROVIDED FOR CURSOR HAS BEEN CHANGED FROM THE PREVIOUS FETCH
SQLCODE -390, Error: THE FUNCTION NAME , SPECIFIC NAME , IS NOT VALID IN THE CONTEXT IN WHICH IT OCCURS
SQLCODE -373, Error: DEFAULT CANNOT BE SPECIFIED FOR IDENTITY COLUMN
SQLCODE -372, Error: ONLY ONE ROWID OR IDENTITY COLUMN IS ALLOWED IN A TABLE
SQLCODE -359, Error: THE RANGE OF VALUES FOR THE IDENTITY COLUMN IS EXHAUSTED
SQLCODE -355, Error: A LOB COLUMN IS TOO LARGE TO BE LOGGED
SQLCODE -352, Error: AN UNSUPPORTED SQLTYPE WAS ENCOUNTERED IN POSITION OF THE INPUT-LIST
SQLCODE -351, Error: AN UNSUPPORTED SQLTYPE WAS ENCOUNTERED IN POSITION OF THE SELECT-LIST
SQLCODE -350, Error: INVALID SPECIFICATION OF A LARGE OBJECT COLUMN
SQLCODE -339, Error: THE SQL STATEMENT CANNOT BE EXECUTED FROM AN ASCII BASED DRDA APPLICATION REQUESTOR TO
A V2R2 DB2 SUBSYSTEM
SQLCODE -338, Error: AN ON CLAUSE IS INVALID
SQLCODE -333, Error: THE SUBTYPE OF A STRING VARIABLE IS NOT THE SAME AS THE SUBTYPE KNOWN AT BIND TIME AND
THE DIFFERENCE CANNOT BE RESOLVED BY TRANSLATION
SQLCODE -332, Error: SYSSTRINGS DOES NOT DEFINE A TRANSLATION FROM CCSID TO
SQLCODE -331, Error: A STRING CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE IT CANNOT BE TRANSLATED.
REASON , CHARACTER , POSITION
SQLCODE -327, Error: THE ROW CANNOT BE INSERTED BECAUSE IT IS OUTSIDE THE BOUND OF THE PARTITION RANGE FOR
THE LAST PARTITION
SQLCODE -314, Error: THE STATEMENT CONTAINS AN AMBIGUOUS HOST VARIABLE REFERENCE
SQLCODE -313, Error: THE NUMBER OF HOST VARIABLES SPECIFIED IS NOT EQUAL TO THE NUMBER OF PARAMETER MARKERS
SQLCODE -312, Error: IS AN UNDEFINED OR UNUSABLE HOST VARIABLE OR IS USED IN A DYNAMIC SQL STATEMENT OR A
TRIGGER DEFINITION
SQLCODE -311, Error: THE LENGTH OF INPUT HOST VARIABLE NUMBER IS NEGATIVE OR GREATER THAN THE MAXIMUM
SQLCODE -310, Error: DECIMAL HOST VARIABLE OR PARAMETER CONTAINS NON-DECIMAL DATA
SQLCODE -309, Error: A PREDICATE IS INVALID BECAUSE A REFERENCED HOST VARIABLE HAS THE NULL VALUE
SQLCODE -305, Error: THE NULL VALUE CANNOT BE ASSIGNED TO OUTPUT HOST VARIABLE NUMBER BECAUSE NO INDICATOR
VARIABLE IS SPECIFIED
SQLCODE -304, Error: A VALUE WITH DATA TYPE CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE THE VALUE IS NOT
WITHIN THE RANGE OF THE HOST VARIABLE IN POSITION WITH DATA TYPE
SQLCODE -303, Error: A VALUE CANNOT BE ASSIGNED TO OUTPUT HOST VARIABLE NUMBER BECAUSE THE DATA TYPES ARE
NOT COMPARABLE
SQLCODE -302, Error: THE VALUE OF INPUT VARIABLE OR PARAMETER NUMBER IS INVALID OR TOO LARGE FOR THE
TARGET COLUMN OR THE TARGET VALUE
SQLCODE -301, Error: THE VALUE OF INPUT HOST VARIABLE OR PARAMETER NUMBER CANNOT BE USED AS SPECIFIED
BECAUSE OF ITS DATA TYPE
SQLCODE -300, Error: THE STRING CONTAINED IN HOST VARIABLE OR PARAMETER IS NOT NUL-TERMINATED
SQLCODE -251, Error: TOKEN IS NOT VALID
SQLCODE -250, Error: THE LOCAL LOCATION NAME IS NOT DEFINED WHEN PROCESSING A THREE-PART OBJECT NAME
SQLCODE -240, Error: THE PART CLAUSE OF A LOCK TABLE STATEMENT IS INVALID
SQLCODE -220, Error: THE COLUMN IN EXPLANATION TABLE IS NOT DEFINED PROPERLY
SQLCODE -219, Error: THE REQUIRED EXPLANATION TABLE DOES NOT EXIST
SQLCODE -214, Error: AN EXPRESSION STARTING WITH IN THE CLAUSE IS NOT VALID. REASON CODE =
SQLCODE -212, Error: IS SPECIFIED MORE THAN ONCE IN THE REFERENCING CLAUSE OF A TRIGGER DEFINITION
SQLCODE -208, Error: THE ORDER BY CLAUSE IS INVALID BECAUSE COLUMN IS NOT PART OF THE RESULT TABLE
SQLCODE -206, Error: IS NOT A COLUMN OF AN INSERTED TABLE, UPDATED TABLE, OR ANY TABLE IDENTIFIED IN A
FROM CLAUSE, OR IS NOT A COLUMN OF THE TRIGGERING TABLE OF A TRIGGER
SQLCODE -205, Error: IS NOT A COLUMN OF TABLE
SQLCODE -204, Error: IS AN UNDEFINED NAME
SQLCODE -203, Error: A REFERENCE TO COLUMN IS AMBIGUOUS
SQLCODE -199, Error: ILLEGAL USE OF KEYWORD , TOKEN WAS EXPECTED
SQLCODE -198, Error: THE OPERAND OF THE PREPARE OR EXECUTE IMMEDIATE STATEMENT IS BLANK OR EMPTY
SQLCODE -197, Error: QUALIFIED COLUMN NAMES IN ORDER BY CLAUSE NOT PERMITTED WHEN UNION OR UNION ALL
SPECIFIED
SQLCODE -191, Error: A STRING CANNOT BE USED BECAUSE IT IS INVALID MIXED DATA
SQLCODE -190, Error: ATTRIBUTES OF COLUMN IN TABLE ARE NOT COMPATIBLE WITH THE EXISTING COLUMN
SQLCODE -189, Error: CCSID IS UNKNOWN OR INVALID FOR THE DATA TYPE OR SUBTYPE
SQLCODE -188, Error: THE STRING REPRESENTATION OF A NAME IS INVALID
SQLCODE -187, Error: A REFERENCE TO A CURRENT DATE/TIME SPECIAL REGISTER IS INVALID BECAUSE THE MVS TOD
CLOCK IS BAD OR THE MVS PARMTZ IS OUT OF RANGE
SQLCODE -186, Error: THE LOCAL DATE LENGTH OR LOCAL TIME LENGTH HAS BEEN INCREASED AND EXECUTING PROGRAM
RELIES ON THE OLD LENGTH
SQLCODE -184, Error: AN ARITHMETIC EXPRESSION WITH A DATETIME VALUE CONTAINS A PARAMETER MARKER
SQLCODE -183, Error: AN ARITHMETIC OPERATION ON A DATE OR TIMESTAMP HAS A RESULT THAT IS NOT WITHIN THE
VALID RANGE OF DATES
SQLCODE -182, Error: AN ARITHMETIC EXPRESSION WITH A DATETIME VALUE IS INVALID
SQLCODE -181, Error: THE STRING REPRESENTATION OF A DATETIME VALUE IS NOT A VALID DATETIME VALUE
SQLCODE -180, Error: THE DATE, TIME, OR TIMESTAMP VALUE IS INVALID
SQLCODE -173, Error: UR IS SPECIFIED ON THE WITH CLAUSE BUT THE CURSOR IS NOT READ-ONLY
SQLCODE -171, Error: THE DATA TYPE, LENGTH, OR VALUE OF ARGUMENT OF IS INVALID
SQLCODE -170, Error: THE NUMBER OF ARGUMENTS SPECIFIED FOR IS INVALID
SQLCODE -164, Error: DOES NOT HAVE THE PRIVILEGE TO CREATE A VIEW WITH QUALIFICATION
SQLCODE -160, Error: THE WITH CHECK OPTION CANNOT BE USED FOR THE SPECIFIED VIEW
SQLCODE -159, Error: DROP OR COMMENT ON IDENTIFIES A(N) RATHER THAN A(N)
SQLCODE -156, Error: THE STATEMENT DOES NOT IDENTIFY A TABLE
SQLCODE -154, Error: THE STATEMENT IS INVALID BECAUSE THE VIEW OR TABLE DEFINITION IS NOT VALID
SQLCODE -153, Error: THE STATEMENT IS INVALID BECAUSE THE VIEW OR TABLE DEFINITION DOES NOT INCLUDE A
UNIQUE NAME FOR EACH COLUMN
SQLCODE -152, Error: THE DROP CLAUSE IN THE ALTER STATEMENT IS INVALID BECAUSE IS A
SQLCODE -151, Error: THE UPDATE STATEMENT IS INVALID BECAUSE THE CATALOG DESCRIPTION OF COLUMN INDICATES
THAT IT CANNOT BE UPDATED
SQLCODE -150, Error: THE OBJECT OF THE INSERT, DELETE, OR UPDATE STATEMENT IS A VIEW OR TRANSITION TABLE
FOR WHICH THE REQUESTED OPERATION IS NOT PERMITTED
SQLCODE -148, Error: THE SOURCE TABLE CANNOT BE RENAMED OR ALTERED
SQLCODE -147, Error: ALTER FUNCTION FAILED BECAUSE SOURCE FUNCTIONS CANNOT BE ALTERED
SQLCODE -144, Error: INVALID SECTION NUMBER
SQLCODE -142, Error: THE SQL STATEMENT IS NOT SUPPORTED
SQLCODE -138, Error: THE SECOND OR THIRD ARGUMENT OF THE SUBSTR FUNCTION IS OUT OF RANGE
SQLCODE -137, Error: THE LENGTH RESULTING FROM IS GREATER THAN
SQLCODE -136, Error: SORT CANNOT BE EXECUTED BECAUSE THE SORT KEY LENGTH IS GREATER THAN 4000 BYTES
SQLCODE -133, Error: A COLUMN FUNCTION IN A SUBQUERY OF A HAVING CLAUSE IS INVALID BECAUSE ALL COLUMN
REFERENCES IN ITS ARGUMENT ARE NOT CORRELATED TO THE GROUP BY RESULT THAT THE HAVING CLAUSE IS APPLIED TO
SQLCODE -132, Error: AN OPERAND OF x IS NOT VALID
SQLCODE -131, Error: STATEMENT WITH LIKE PREDICATE HAS INCOMPATIBLE DATA TYPES
SQLCODE -130, Error: THE ESCAPE CLAUSE CONSISTS OF MORE THAN ONE CHARACTER, OR THE STRING PATTERN CONTAINS
AN INVALID OCCURRENCE OF THE ESCAPE CHARACTER
SQLCODE -129, Error: THE STATEMENT CONTAINS TOO MANY TABLE NAMES
SQLCODE -128, Error: INVALID USE OF NULL IN A PREDICATE
SQLCODE -127, Error: DISTINCT IS SPECIFIED MORE THAN ONCE IN A SUBSELECT
SQLCODE -126, Error: THE SELECT STATEMENT CONTAINS BOTH AN UPDATE CLAUSE AND AN ORDER BY CLAUSE
SQLCODE -125, Error: AN INTEGER IN THE ORDER BY CLAUSE DOES NOT IDENTIFY A COLUMN OF THE RESULT
SQLCODE -123, Error: THE PARAMETER IN POSITION IN THE FUNCTION MUST BE A CONSTANT OR KEYWORD
SQLCODE -121, Error: THE COLUMN IS IDENTIFIED MORE THAN ONCE IN THE INSERT OR UPDATE OR SET TRANSITION
VARIABLE STATEMENT
SQLCODE -120, Error: A WHERE CLAUSE, SET CLAUSE, VALUES CLAUSE, OR A SET ASSIGNMENT STATEMENT INCLUDES A
COLUMN FUNCTION
SQLCODE -119, Error: A COLUMN IDENTIFIED IN A HAVING CLAUSE IS NOT INCLUDED IN THE GROUP BY CLAUSE
SQLCODE -117, Error: THE NUMBER OF ASSIGNED VALUES IS NOT THE SAME AS THE NUMBER OF SPECIFIED OR IMPLIED
COLUMNS
SQLCODE -115, Error: A PREDICATE IS INVALID BECAUSE THE COMPARISON OPERATOR IS FOLLOWED BY A PARENTHESIZED
LIST OR BY ANY OR ALL WITHOUT A SUBQUERY
SQLCODE -114, Error: THE LOCATION NAME DOES NOT MATCH THE CURRENT SERVER
SQLCODE -113, Error: INVALID CHARACTER FOUND IN: . REASON CODE
SQLCODE -112, Error: THE OPERAND OF A COLUMN FUNCTION IS ANOTHER COLUMN FUNCTION
SQLCODE -111, Error: A COLUMN FUNCTION DOES NOT INCLUDE A COLUMN NAME
SQLCODE -110, Error: INVALID HEXADECIMAL LITERAL BEGINNING
SQLCODE -109, Error: CLAUSE IS NOT PERMITTED
SQLCODE -108, Error: THE NAME IS QUALIFIED INCORRECTLY
SQLCODE -107, Error: THE NAME IS TOO LONG. MAXIMUM ALLOWABLE SIZE IS
SQLCODE -105, Error: INVALID STRING
SQLCODE -104, Error: ILLEGAL SYMBOL «». SOME SYMBOLS THAT MIGHT BE LEGAL ARE:
SQLCODE -103, Error: IS AN INVALID NUMERIC LITERAL
SQLCODE -102, Error: LITERAL STRING IS TOO LONG. STRING BEGINS
SQLCODE -101, Error: THE STATEMENT IS TOO LONG OR TOO COMPLEX
SQLCODE -097, Error: THE USE OF LONG VARCHAR OR LONG VARGRAPHIC IS NOT ALLOWED IN THIS CONTEXT
SQLCODE -084, Error: UNACCEPTABLE SQL STATEMENT
SQLCODE -079, Error: QUALIFIER FOR DECLARED GLOBAL TEMPORARY TABLE OR INDEX MUST BE SESSION, NOT
SQLCODE -060, Error: INVALID SPECIFICATION :
SQLCODE -029, Error: INTO CLAUSE REQUIRED
SQLCODE -010, Error: THE STRING CONSTANT BEGINNING IS NOT TERMINATED
SQLCODE -007, Error: STATEMENT CONTAINS THE ILLEGAL CHARACTER
SQLCODE 000,SUCCESSFUL EXECUTION
SQLCODE 012, Warning: THE UNQUALIFIED COLUMN NAME WAS INTERPRETED AS A CORRELATED REFERENCE
SQLCODE 098, Warning: A DYNAMIC SQL STATEMENT ENDS WITH A SEMICOLON
SQLCODE 110, Warning: SQL UPDATE TO A DATA CAPTURE TABLE NOT SIGNALED TO ORIGINATING SUBSYSTEM
SQLCODE 111, Warning: THE SUBPAGES OPTION IS NOT SUPPORTED FOR TYPE 2 INDEXES
SQLCODE 117, Warning: THE NUMBER OF INSERT VALUES IS NOT THE SAME AS THE NUMBER OF OBJECT COLUMNS
SQLCODE 162, Warning: TABLE SPACE . HAS BEEN PLACED IN CHECK PENDING
SQLCODE 203, Warning: THE QUALIFIED COLUMN NAME WAS RESOLVED USING A NON-UNIQUE OR UNEXPOSED NAME
SQLCODE 204, Warning: IS AN UNDEFINED NAME
SQLCODE 218, Warning: THE SQL STATEMENT REFERENCING A REMOTE OBJECT CANNOT BE EXPLAINED
SQLCODE 219, Warning: THE REQUIRED EXPLANATION TABLE DOES NOT EXIST
SQLCODE 220, Warning: THE COLUMN IN EXPLANATION TABLE IS NOT DEFINED PROPERLY
SQLCODE 236, Warning: SQLDA INCLUDES SQLVAR ENTRIES, BUT ARE REQUIRED FOR COLUMNS
SQLCODE 237, Warning: SQLDA INCLUDES SQLVAR ENTRIES, BUT ARE REQUIRED BECAUSE AT LEAST ONE OF THE COLUMNS
BEING DESCRIBED IS A DISTINCT TYPE
SQLCODE 238, Warning: SQLDA INCLUDES SQLVAR ENTRIES, BUT SQLVAR ENTRIES ARE NEEDED FOR COLUMNS BECAUSE
AT LEAST ONE OF THE COLUMNS BEING DESCRIBED IS A LOB
SQLCODE 239, Warning: SQLDA INCLUDES SQLVAR ENTRIES, BUT ARE REQUIRED FOR COLUMNS BECAUSE AT LEAST ONE
OF THE COLUMNS BEING DESCRIBED IS A DISTINCT TYPE
SQLCODE 304, Warning: A VALUE WITH DATA TYPE CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE THE VALUE IS
NOT WITHIN THE RANGE OF THE HOST VARIABLE IN POSITION WITH DATA TYPE
SQLCODE 331, Warning: THE NULL VALUE HAS BEEN ASSIGNED TO A HOST VARIABLE BECAUSE THE STRING CANNOT BE
TRANSLATED. REASON , CHARACTER , HOST VARIABLE
SQLCODE 339, Warning: THE SQL STATEMENT HAS BEEN SUCCESSFULLY EXECUTED BUT THERE MAY BE SOME CHARACTER
CONVERSION INCONSISTENCIES
SQLCODE 394, Warning: USER SPECIFIED OPTIMIZATION HINTS USED DURING ACCESS PATH SELECTION
SQLCODE 395, Warning: USER SPECIFIED OPTIMIZATION HINTS ARE INVALID (REASON CODE = »).
THE OPTIMIZATION HINTS ARE IGNORED
SQLCODE 402, Warning: LOCATION IS UNKNOWN
SQLCODE 403, Warning: THE LOCAL OBJECT REFERENCED BY THE CREATE ALIAS STATEMENT DOES NOT EXIST
SQLCODE 434, Warning: OPTION IS A DEPRECATED FEATURE
SQLCODE 445, Warning: VALUE HAS BEEN TRUNCATED
SQLCODE 462, Warning: EXTERNAL FUNCTION OR PROCEDURE (SPECIFIC NAME ) HAS RETURNED A WARNING SQLSTATE,
WITH DIAGNOSTIC TEXT
SQLCODE 464, Warning: PROCEDURE RETURNED QUERY RESULT SETS, WHICH EXCEEDS THE DEFINED LIMIT
SQLCODE 466, Warning: PROCEDURE RETURNED QUERY RESULT SETS
SQLCODE 494, Warning: NUMBER OF RESULT SETS IS GREATER THAN NUMBER OF LOCATORS
SQLCODE 495, Warning: ESTIMATED PROCESSOR COST OF PROCESSOR SECONDS ( SERVICE UNITS) IN COST CATEGORY
EXCEEDS A RESOURCE LIMIT WARNING THRESHOLD OF SERVICE UNITS
SQLCODE 535, Warning: THE RESULT OF THE POSITIONED UPDATE OR DELETE MAY DEPEND ON THE ORDER OF THE ROWS
SQLCODE 541, Warning: THE REFERENTIAL OR UNIQUE CONSTRAINT HAS BEEN IGNORED BECAUSE IT IS A DUPLICATE
SQLCODE 551, Warning: DOES NOT HAVE THE PRIVILEGE TO PERFORM OPERATION ON OBJECT
SQLCODE 552, Warning: DOES NOT HAVE THE PRIVILEGE TO PERFORM OPERATION
SQLCODE 558, Warning: THE WITH GRANT OPTION IS IGNORED
SQLCODE 561, Warning: THE ALTER, INDEX, REFERENCES, AND TRIGGER PRIVILEGES CANNOT BE GRANTED TO
PUBLIC AT ALL LOCATIONS
SQLCODE 562, Warning: A GRANT OF A PRIVILEGE WAS IGNORED BECAUSE THE GRANTEE ALREADY
HAS THE PRIVILEGE FROM THE GRANTOR
SQLCODE 585, Warning: THE SCHEMA NAME APPEARS MORE THAN ONCE IN THE CURRENT PATH
SQLCODE 610, Warning: A CREATE/ALTER ON OBJECT HAS PLACED OBJECT IN PENDING
SQLCODE 625, Warning: THE DEFINITION OF TABLE HAS BEEN CHANGED TO INCOMPLETE
SQLCODE 626, Warning: DROPPING THE INDEX TERMINATES ENFORCEMENT OF THE UNIQUENESS OF A KEY THAT WAS DEFINED
WHEN THE TABLE WAS CREATED
SQLCODE 645, Warning: WHERE NOT NULL IS IGNORED BECAUSE THE INDEX KEY CANNOT CONTAIN NULL VALUES
SQLCODE 650, Warning: THE TABLE BEING CREATED OR ALTERED CAN NOT BECOME A DEPENDENT TABLE
SQLCODE 653, Warning: TABLE IN PARTITIONED TABLE SPACE IS NOT AVAILABLE BECAUSE ITS PARTITIONED INDEX HAS
NOT BEEN CREATED
SQLCODE 655, Warning: STOGROUP HAS BOTH SPECIFIC AND NON-SPECIFIC VOLUME IDS. IT WILL NOT BE ALLOWED IN
FUTURE RELEASES.
SQLCODE 658, Warning: THE SUBPAGES VALUE IS IGNORED FOR THE CATALOG INDEX
SQLCODE 664, Warning: THE INTERNAL LENGTH OF THE LIMIT-KEY FIELDS FOR THE PARTITIONED INDEX EXCEEDS THE
LENGTH IMPOSED BY THE INDEX MANAGER
SQLCODE 738, Warning: DEFINITION CHANGE OF MAY REQUIRE SIMILAR CHANGE ON READ-ONLY SYSTEMS
SQLCODE 799, Warning: A SET STATEMENT REFERENCES A SPECIAL REGISTER THAT DOES NOT EXIST AT THE SERVER SITE
SQLCODE 802, Warning: EXCEPTION ERROR HAS OCCURRED DURING OPERATION ON DATA, POSITION
SQLCODE 807, Warning: THE RESULT OF DECIMAL MULTIPLICATION MAY CAUSE OVERFLOW
SQLCODE 863, Warning: THE CONNECTION WAS SUCCESSFUL BUT ONLY SBCS WILL BE SUPPORTED
SQLCODE 883, Warning: ROLLBACK TO SAVEPOINT OCCURRED WHEN THERE WERE OPERATIONS THAT CANNOT BE UNDONE OR AN
OPERATION THAT CANNOT BE UNDONE OCCURRED WHEN THERE WAS A SAVEPOINT OUTSTANDING
Источник
RT: return-code, RS:
Disclaimer: This Db2® 12 for z/OS Reference Guide was developed to help users in their daily activities in administrating and programming in Db2 for z/OS. There are no guarantees expressed or implied with the contents in this guide. We want to provide a quality and useful reference for users. Please notify us of any mistakes or errors in this reference guide at blogs@bmc.com. Db2 is a registered trademark of the IBM Corporation.
DB2 errors and their various codes can at be more than perplexing at times. Knowing how to navigate them can save you a lot of time and effort.
At times you may get DB2 exception bubbling up into your code of the following form.
com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException:
DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2,
TABLEID=19, COLNO=0, DRIVER=4.15.134
This is called an SQL Communications Area. An SQLCA is a set of variables that may be updated at the end of the execution of every SQL statement. A program that contains executable SQL statements may provide one, but no more than one SQLCA (unless a stand-alone SQLCODE or a stand-alone SQLSTATE variable is used instead), except in Java™, where the SQLCA is not applicable.
SQLCODE is the SQL return code, 0 is successful, positive is successful with warning condition and negative is error condition
SQLSTATE is a return code that indicates the outcome of the most recently executed SQL statement
SQLERRMC contains message replacement text associated with the SQLCODE. In some instances it may contain the tablespace (TBSPACEID), table (TABLEID) and column(colno) ids. To determine the actual tablespace, table and/or columns this refers to you can use the following command
SELECT C.TABSCHEMA, C.TABNAME, C.COLNAME FROM SYSCAT.TABLES AS T, SYSCAT.COLUMNS AS C WHERE T.TBSPACEID = 2 AND T.TABLEID = 19 AND C.COLNO = 0 AND C.TABSCHEMA = T.TABSCHEMA AND C.TABNAME = T.TABNAME
There are number of ways to determine what the errors you are looking at mean and below are a number of ways.
Ask DB2 what the error code means
You can find the meaning of the error code from the db2 command prompt with “? sqlxxxx
” where xxxx is the SQLCODE from the error message:
$ db2inst1@server ~]$ db2 ? sql-407
SQL0407N Assignment of a NULL value to a NOT NULL column "<name>" is
not allowed.
Explanation:
One of the following occurred:
* The update or insert value was NULL, but the object column was
declared as NOT NULL in the table definition. Consequently:
* NULL values cannot be inserted into that column.
* An update cannot set values in that column to NULL.
* A SET transition-variable statement in a trigger cannot set values
in that column to NULL.
(and so on for about three more pages of text...)
Getting some online help
You can also use the IBM SQL message finder to find information about iSeries SQL messages where you can search by message ID, SQLCODE, or SQLSTATE value.
Alternatively refer to online reference for SQL Messages and Codes which is quite useful.
Monitoring SQL Statements for errors in DB2
There can be situations where you do not have all the detail but still want to isolate the SQL statements that are failing . In this case you can capture the failed statements using event monitoring for DB2 then find the culprit in the resulting logs.
In the commands that follow we are monitoring the sample database for events with an event monitor we will create called mon_stmt.
Replace sample with the database you wish to monitor.
Replace mon_stmt with the monitor name you wish to use.
Connect to the database
$ db2 connect to sample
Check existing event monitors and its state
You can use this command at any stage to check on whether your monitor exists and if so whether it is active or not.
$ db2 "select nodenum,substr(evmonname,1,30) evmonname, case when event_mon_state(evmonname) = 0 then 'inactive' when event_mon_state(evmonname) = 1 then 'active' end state from syscat.eventmonitors"
NODENUM EVMONNAME STATE
------- ------------------------------ --------
0 DB2DETAILDEADLOCK active
Create statement event monitor
If the monitor does not exist create it.
$ db2 "create event monitor mon_stmt for statements write to file '/home/db2inst1/'"
Activate event monitor
If the monitor is not active, activate it.
$ db2 set event monitor mon_stmt state=1
Trigger the exception
For arguments sake we will trigger the exception by running invalid SQL. Trigger it in the appropriate way in your own environment whether through a connected application or directly. You may want to check the number of failed operations before triggering it. To learn how have a look at the next step.
$ db2 "select * from sysibm.sysdm1"
SQL0204N "SYSIBM.SYSDM1" is an undefined name. SQLSTATE=42704
Check failed statement counter
Perform the necessary action that triggers the failure then confirm that indeed the failures where captured with the below command
$ db2 get snapshot for database on sample | grep -i failed
Failed statement operations = 2
Deactivate event monitor
Before we can get the event logs we need to stop the event monitor.
$ db2 set event monitor mon_stmt state=0
Generate statement event monitor data
Now that the event monitor is stopped we can generate the data that was captured during the session.
$ db2evmon -db sample -evm mon_stmt > mon_stmt.out
Check statement for the error
You can now check mon_stmt.out for the statements which failed. The statement is a numbered list of events with detail on each which includes the query executed, sql code and sql state among a lot of other information. You can search by the sql code and/or sql state you have in your original error.
8) Statement Event ...
Appl Handle: 7
.
.
Text : select * from sysibm.sysdummy1
.
.
SQLCA:
sqlcode: 0
sqlstate: 00000
.
.
10) Statement Event ...
Appl Handle: 7
.
.
Text : select * from sysibm.sysdm1
.
.
SQLCA:
sqlcode: -204
sqlstate: 42704
Message: SQL0204N "SYSIBM.SYSDM1" is an undefined name. SQLSTATE=42704
Drop the event monitor
Once you are done make sure to clean up drop the event monitor
$ db2 drop event monitor mon_stmt
Useful Links
- How to find table and column in DB2 with tbspaceid tableid specified in error message
- Listing of SQL messages
- How to interpret DB2 error codes
- Capture failed DB2 SQL statements
- SQL communications area
- SQLCA field descriptions
When I do work in other domains – even something as connected as scripting – I find the error messages confusing and unhelpful. Most of the time, this is mostly because I don’t know much about the language or the the area. I’d like to think that my opinion that Db2 error messages are really quite helpful and useful is unbiased, but having built a career on focusing on IBM Db2, I’m sure I am biased.
There are some simple things that can really help understand Db2 error messages, and I thought I’d share them.
Structure of an Error Message
Error messages that users see from Db2 nearly always start with SQL
. There are a few other three-letter prefixes such as DSN or DBI, but SQL is the most common one. I get the vague impression that some other RDBMSes or some developers rely more on the SQLSTATE than the error. But if I have a choice, the error is much more useful to me.
Sometimes applications log the error message number using a minus sign in front, like this:
Chained SQLException #1: Error for batch element #1: DB2 SQL Error: SQLCODE=-1476, SQLSTATE=40506, SQLERRMC=-911, DRIVER=4.17.29
In the case of the above, the error messages are both SQL1476N The current transaction was rolled back because of error sqlcode
and the error SQL0911N
– which is the error code that caused the rollback.
When reported in full, it is important to record the full error message because it often has other critical information like the object name the error occurred on or the reason code for the error. For example, the error message above:
SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code "68". SQLSTATE=40001
means something technically different with a reason code of 2 vs. a reason code of 68.
Another example of this is when there is a permissions problem:
SQL0551N "VDBA" does not have the required authorization or privilege to perform operation "EXECUTE" on object "SYSPROC.MON_GET_TABLESPACE". SQLSTATE=42501
This error message gives us the user id (VDBA), the type of privilege (EXECUTE), and the object name (SYSPROC.MON_GET_TABLESPACE). With those pieces of information, the error is much easier to resolve.
Let’s take a moment to look at the structure of the error message again. I already mentioned that the first three characters are nearly always SQL. After those three characters come normally 4, but on some occasions 5, numbers. At the end of every error message is a letter. The letter is always the same for a given error message. For example, SQL0911N will always have an N on the end. These letters actually tell you how severe the error is. The common values are:
- W – Warning. This means the statement was at least partially successful. Sometimes the “warning” simply notifies you of something that makes no difference to the result, while other times (like during a restore), it can mean some part of the command did not complete as expected.
- N – Statement Failure. This means that the statement did not have its desired effect and must be re-run after the issue is corrected. This usually only affects the current statement. Depending on how you are executing a file of statements or script of statements, statements after the failure may succeed.
- C – Serious System Failure. This means there is a very serious problem that may affect not just this statement or connection, but the server as a whole. If you have a DBA, involve them when you get an error code ending in C.
One of the most common statement failures is SQL0104N – it indicates that you have some sort of syntax error with the statement. It generally gives you more details on where in the statement the issue is:
$ db2 connect to db sample SQL0104N An unexpected token "sample" was found following "DB". Expected tokens may include: "USER". SQLSTATE=42601 $ db2 connect to sample
Looking up Error Messages
There are two great locations where you can look up the official description on the error and get the official details on what different reason codes mean.
Command Line
A lot of details on an error message are available at the command line. Simply type db2 ?
and the error number, like this:
$ db2 ? SQL0551N SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation. Authorization ID: "". Operation: "". Object: "". Explanation: The operation could not be performed on the specified object. In general, this message is returned because the authorization ID does not have the required authority or privilege to perform the operation. In some cases, it is returned for an object that does not allow the operation even when the authorization ID has an administrative authority. This message can be returned for different reasons. Here are some examples of scenarios in which this message could be returned: Scenario 1 An attempt to create or alter a table that has referential constraints fails because the user does not have REFERENCE privileges. In this scenario, the value of the runtime token "" is "REFERENCES" and the value of the runtime token "" is the object that the constraint references. Scenario 2 Execution of a DB2 utility or CLI application fails because the user ID that created the database no longer exists or no longer has the privileges required to execute the DB2 utility program or CLI package. Scenario 3 Invocation of a routine fails because the user does not have EXECUTE privileges on any candidate routine in the SQL path. In this scenario, the value of the runtime token "" is the name of a candidate routine in the SQL path. Scenario 4 Creation of a routine fails because the user ID that was used to bind the routine does not have the privileges necessary to issue all the statements in the routine. Scenario 5 Replacing an existing object by using a CREATE OR REPLACE statement failed because the user is not the owner of the object. Scenario 6 An attempt to complete an online move table operation fails because the user does not have the same authorization ID as the user who initiated the online move table operation. Scenario 7 An attempt is made to perform an unsupported operation on a system-generated statistical view that is associated with an expression-based index. It is not supported for any user to modify the privileges of or to access this type of statistical view. However, users with adequate authority and privileges on the underlying table may update the statistics of this type of statistical view, either by issuing the RUNSTATS command or by manually updating the statistics. In Federated environments: This message might be returned when the following actions fail because the user does not have the necessary authority: * Altering one of the following user-mapping options: * REMOTE_PASSWORD * FED_PROXY_USER * USE_TRUSTED_CONTEXT * Altering a trusted user context * Creating or dropping a user mapping that has the FED_PROXY_USER option or the USE_TRUSTED_CONTEXT option * Creating or dropping a server that has the FED_PROXY_USER option The required authorization can be at the federated server, at the data source, or at both the federated server and the data source. Some data sources do not provide appropriate values for the runtime tokens "", "", and "". In these cases, the message tokens might be in one of the following formats: * AUTHID:UNKNOWN * UNKNOWNM * :TABLE/VIEW. User response: If the authorization ID "" does not have the required authority or privilege, grant the necessary privilege or authority, if appropriate. Here are responses for the scenarios described in the explanation section of this message: Scenario 1 Grant the REFERENCES privilege by using the statement GRANT REFERENCES ON "" TO "". Scenario 2 Rebind the DB2 utility programs or CLI packages to the database by connecting to the database and then issuing one of the following CLP commands from the bnd subdirectory of the instance directory: * For the DB2 utilities: DB2 bind @db2ubind.lst blocking all grant public * For CLI packages: DB2 bind @db2cli.lst blocking all grant public If the user does not have EXECUTE privileges on the package, grant the EXECUTE privilege on the package, by use executing the GRANT statement. Scenario 3 Grant the EXECUTE privilege on the routine to the authorization ID by executing the GRANT statement. Scenario 4 Grant explicit privileges to the authorization ID on the objects that the statements within the routine are attempting to access. Scenario 5 Respond to scenario 5 in one of the following ways: * Issue the statement as the user who is the owner of the object to be replaced. * Transfer the ownership of the object by executing the TRANSFER OWNERSHIP statement. Scenario 6 Call the procedure again, using the same authorization ID as the user who initiated the online move table operation. Scenario 7 Specify a different object for the operation. sqlcode: -551 sqlstate: 5UA0K, 42501 Related information: Authorization TRANSFER OWNERSHIP statement Granting privileges Binding bind files after installing fix packs ALTER TABLE statement Authorizations and binding of routines that contain SQL Privileges on expression-based indexes
This isn’t even the longest one, by a long shot. Notice particularly the “User response” section that often suggests things to try to resolve the issue.
IBM Db2 Knowledge Center
The same information, plus a little more, is available in the IBM Db2 Knowledge Center. In the KC, you can link to related topics. Check out the same error information in the KC. You can also navigate to the message reference. This used to be a book in the shelf of reference books. You can use the left pane with the table of contents to navigate to specific error messages if search seems to be failing you.
There are, of course, other great resources available online. It is pretty rare that you encounter an actual bug in the Db2 product, but you can look up known issues (APARS).
Any IT professional develops a knack for googling and sifting through the junk for the diamonds. There are a number of bloggers and forums where you can find good information and practical advice. Just remember the poor schmo who truncated a table because of something he saw online, and then wondered where all the data went! (for the newbies, truncating a table means completely deleting all of the data)
Ember is always curious and thrives on change. She has built internationally recognized expertise in IBM Db2, and is now pivoting to focus on learning MySQL. Ember shares both posts about her core skill set and her journey learning MySQL.
Ember lives in Denver and work from home