SQL Error Messages and Codes
SQL Error Messages and Codes
Explanation: The statement contains a string constant, beginning with string, that is not
terminated properly.
User Response: Examine the statement for missing quotation marks or apostrophes in the
indicated string constant.
Explanation: type is either LENGTH or SCALE. spec is the specified length or scale. Length or
scale must be specified by an unsigned integer constant and the value must be in the range
allowed by the data type.
User Response: Correct the statement. Refer to the SQL Reference Manual for rules regarding
length and scale.
Explanation: This SQL statement is unacceptable to Db2. One of the following actions has
occurred:
– An attempt has been made to PREPARE or EXECUTE IMMEDIATE an SQL statement that
cannot be prepared; refer to the proper SQL statement as noted in the SQL Reference
Manual.
– The embedded SQL statement is not an SQL statement supported by Db2.
– The statement referenced an undeclared cursor.
– An attempt was made to prepare an ALLOCATE CURSOR statement but the statement
identifier is already associated with a declared cursor.
User Response: (1) If the situation involves an SQL statement that cannot be prepared, the
problem is in the source of the SQL statement, not the application program. Thus, no action is
necessary unless the source of the SQL statement is the application program itself.
(2) If the situation involves an SQL statement that is not supported by Db2, remove it from the
application program and recompile it again.
(3) If the situation involves an invalid PREPARE of an ALLOCATE CURSOR statement, change the
application program to use a statement identifier that is not associated with a declared cursor.
Explanation: The string constant beginning with string has a length greater that 254
characters or 124 graphic characters. Character strings with lengths greater than 254 and graphic
strings with lengths greater than 124 can be specified only through careful assignment from host
variables. For SET CURRENT PACKAGESET, up to 18 characters are allowed; for SET CURRENT
SQLID, up to 8 characters are allowed; for SET CURRENT DEGREE, up to 3 characters are
allowed.
Two consecutive string delimiters are used to represent one string delimiter within the character
string. These count as two bytes when calculating the lengths of character string constants.
User Response: The requested function is not available interactively. If the error occurred in
the context of an SQL statement embedded in an application program, the desired result can be
achieved by assigning the long string to a host variable, and substituting that variable for the
string literal in the SQL statement.
Explanation: The indicated “literal” begins with a digit, but is not valid integer, decimal, or
float literal.
User Response: Correct the invalid literal.
USQL -104 ILLEGAL SYMBOL “token”. SOME SYMBOLS THAT MIGHT BE LEGAL ARE: token-list
Explanation: A syntax error was detected where the symbol “token” occurs in the SQL
statement. The list of symbols that might be legal shows some alternate symbols that could
possibly be correct at that point, provided the preceding part of the statement is entirely correct.
However, the preceding part of the statement might be correct. For example, if an important
keyword is omitted, Db2 detects the error at a later time, and not always immediately after the
point where the keyword should appear. The list of alternate symbols is only meant to be used
as a suggestion. Some of those symbols are possibly correct for statements sent to other
database management systems.
User Response: Correct the statement and execute it again.
Explanation: The statement contains an invalid string. It is neither a character string nor a
graphic string.
User Response: Specify the correct format of the string. Check for a graphic string, paired
delimiters, the character G or the character N, and an even number of bytes within the string.
USQL -107 THE NAME name IS TOO LONG. MAXIMUM ALLOWABLE SIZE IS size
Explanation: The name is too long. The maximum permissible length for names of that type
is indicated by size. Names for the following item cannot contain more than 64 characters:
– Version-id
Names for the following items cannot contain more than 18 characters (20 including SQL
escape characters, if present):
– SQL Columns
– SQL Tables
– SQL Views
– SQL indexes
– SQL aliases
– SQL synonyms
– Collection-ids
– Check constraints
Names for the following item cannot contain more than 16 characters:
– Location-name
The following items cannot contain more than 8 characters:
– Table qualifiers
– View qualifiers
– Library member names specified in an INCLUDE statement
– Storage group names
– Database names
– Table space names
– Application plans
– Database request modules (DBRMs)
– Referential constraint names specified in CREATE or ALTER TABLE statements
– Package-id
Host variable names cannot contain more than 64 characters. Volume serial numbers cannot
contain more than 6 characters. Labels cannot contain more than 30 characters.
User Response: Choose a shorter name for the object.
Explanation: The name name is improperly qualified. A target name on the RENAME
statement may not have a qualifier.
User Response: Remove the qualifier and reissue the statement.
Explanation: The indicated clause is not permitted in the context in which it appears in this
SQL statement for the following reasons:
– A subselect cannot have an INTO clause.
– A CREATE VIEW statement cannot have INTO, ORDER BY, or FOR UPDATE clauses.
– An embedded SELECT statement cannot have ORDER BY or FOR UPDATE clauses.
– SELECT statements used in cursor declarations cannot have an INTO clause.
– A CREATE TABLESPACE statement cannot specify the LARGE clause without the NUMPARTS
option.
– A CREATE TABLESPACE statement cannot specify LOCKPART without the NUMPARTS option.
– An ALTER TABLESPACE statement cannot specify LOCKPART for a non-partitioned table
space.
– A table space with LOCKPART YES cannot be altered to LOCKSIZE TABLESPACE.
– A table space with LOCKSIZE TABLESPACE cannot be altered to LOCKPART YES.
User Response: Correct the SQL statement.
Explanation: The literal beginning with the specified string contains one or more characters
that are not valid hexadecimal digits.
User Response: Correct the invalid literal.
Explanation: The specification of a column function (AVG, MAX, MIN, or SUM) was invalid
because such functions must include a column name in the operand.
User Response: A column name must be specified as an operand to the function. Refer to
the SQL Reference Manual for further information about the proper usage of column functions.
Explanation: The string contains an invalid character. It can be an SQL ordinary identifier
name, a host variable name, or a Double Byte Character Set (DBCS) comment. For single byte
character set SQL ordinary identifiers, names of buffer pools, databases, plans, and storage
groups must contain only uppercase alphabetic or national characters and numerics when
CHARSET is KATAKANA; the first character must be alphabetic or national. The following reason
code applies to DBCS identifiers:
– 000 An invalid character was found in the SBCS identifier.
The following reason codes apply to DBCS identifiers or comments:
– 101 An odd number of bytes exists between the shift-out and the shift-in character.
– 102 Either a shift-in or shift-out character is missing.
– 103 DBCS blanks X”4040” are not allowed.
– 104 There are no characters between the shift-out and the shift-in characters.
– 105 Shift-out cannot be the first byte of the DBCS character between the shift-out and the
shift-in characters.
User Response: Correct the name.
USQL -114 THE LOCATION NAME location DOES NOT MATCH THE CURRENT SERVER
Explanation: A 3-part SQL procedure name was provided for one of the following SQL
statements:
ASSOCIATE LOCATORS
CALL
DESCRIBE PROCEDURE
The first part of the SQL procedure name, designated to specify the location where the stored
procedure resides, did not match the value of the SQL CURRENT SERVER special register.
User Response: Take one of the actions itemized below to resolve the mismatch:
– Change the location qualifier to match the CURRENT SERVER special register.
– Issue an SQL CONNECT to the location where the stored procedure resides before issuing
the SQL statement. Ensure that the SQL CALL statement is issued before the ASSOCIATE
LOCATORS or DESCRIBE PROCEDURE.
USQL -115 A PREDICATE IS INVALID BECAUSE THE COMPARISON OPERATOR operator IS FOLLOWED BY A
PARENTHESIZED LIST OR BY ANY OR ALL WITHOUT A SUBQUERY
Explanation: A simple comparison such as: “>” must not be followed by a list of items. ANY
and ALL comparisons must be followed by a subselect, rather that an expression or a list of
items.
User Response: Correct the SQL statement. Refer to the SQL Reference Manual for
information about the syntax of SQL statements.
USQL -117 THE NUMBER OF INSERT VALUES IS NOT THE SAME AS THE NUMBER OF OBJECT COLUMNS
Explanation: The number of insert values in the value list of the INSERT statement is not the
same as the number of object columns specified.
User Response: Correct the statement to specify one and only one value for each of the
specified object columns.
USQL -118 THE OBJECT TABLE OR VIEW OF THE INSERT, DELETE, OR UPDATE STATEMENT IS ALSO IDENTIFIED IN A
FROM CLAUSE
Explanation: The table or view specified as the object of an INSERT, DELETE, or UPDATE
statement also appears in the FROM clause of a subselect within the statement. The table or
view that is the object of an INSERT, UPDATE, or DELETE cannot also be used to supply the
values to be inserted or to qualify the rows to be inserted, updated, or deleted.
User Response: The implied function is not supported by Db2. It may be possible to obtain
the desired result by creating a temporary copy of the object table or view, and addressing the
subselect to that copy. Refer to the SQL Reference Manual for additional information regarding
the syntax of SQL statements.
USQL -119 A COLUMN IDENTIFIED IN A HAVING CLAUSE IS NOT INCLUDED IN THE GROUP BY CLAUSE
Explanation: A column identified in a HAVING clause (possibly within a scalar function) does
not appear in the GROUP BY clause. Columns specified in a HAVING clause must appear within
column functions or also be specified in the GROUP BY clause.
User Response: The implied function is not supported by Db2. Refer to the SQL Reference
Manual for information regarding the proper usage of HAVING and GROUP BY clauses.
Explanation: A column function is not permitted in a SET clause. A column function is allowed
in a WHERE clause only if the WHERE clause appears within a subquery of a HAVING clause.
User Response: The implied function is not supported by Db2. Refer to the SQL Reference
Manual for information regarding restrictions on operands that can be specified within WHERE and
SET clauses.
USQL -121 THE COLUMN name IS IDENTIFIED MORE THAN ONCE IN THE INSERT OR UPDATE STATEMENT
Explanation: The same column name is specified more than once, either in the list of object
columns of an INSERT statement, or the SET clause of an UPDATE statement.
User Response: Correct the syntax of the statement so that each column name is specified
only once.
USQL -122 A SELECT STATEMENT WITH NO GROUP BY CLAUSE CONTAINS A COLUMN NAME AND A COLUMN
FUNCTION IN THE SELECT CLAUSE OR A COLUMN NAME IS CONTAINED IN THE SELECT CLAUSE BUT NOT IN THE GROUP
BY CLAUSE.
User Response: Refer to the SQL Reference Manual for information about the use of GROUP
BY clauses in SQL statements.
USQL -125 AN INTEGER IN THE ORDER BY CLAUSE DOES NOT IDENTIFY A COLUMN OF THE RESULT
Explanation: The ORDER BY clause in the statement contains a column number that is either
less than one, or greater than the number of columns of the result table (the number of items
in the SELECT clause).
User Response: Correct the syntax of the ORDER BY clause so that each column identifier
properly denotes a column of the result table.
USQL -126 THE SELECT STATEMENT CONTAINS BOTH AN UPDATE CLAUSE AND AN ORDER BY CLAUSE
Explanation: The SELECT statement in the declaration for a cursor contains both an UPDATE
clause and an ORDER BY clause. An ORDER by clause cannot be specified in the declaration for
a cursor that is to be used for update.
User Response: The implied function is not supported by Db2. A cursor that is to be used
for update cannot be defined to fetch the rows of the object table in a specific order. Refer to
the SQL Reference Manual for information about restrictions on the declarations for cursors to be
used for update.
Explanation: The DISTINCT statement qualifier can be used only once in a SELECT statement
or a subselect.
User Response: The implied function is not supported by Db2. Refer to the SQL Reference
Manual for information about restrictions on the use of the DISTINCT qualifier.
Explanation: The use of NULL in the search condition does not conform to the rules of SQL
syntax.
User Response: The implied function is not supported by Db2. Refer to the SQL Reference
Manual for information about the proper use of the NULL operand.
Explanation: The ESCAPE character must be a single character, either SBCS or DBCS as
appropriate. For column-name LIKE pattern, the ESCAPE character can only appear in the
character string if it is followed by itself, %, or _ (underscore). The Escape Clause cannot be
specified if the column name at the left of the LIKE or NOT LIKE has the mixed subtype.
User Response: Correct the string pattern or choose a different ESCAPE character and
change the pattern accordingly. Eliminate the use of the Escape Clause on the LIKE or NOT LIKE
predicate where the column name to the left has the MIXED subtype.
USQL -131 STATEMENT WITH LIKE PREDICATE HAS INCOMPATIBLE DATA TYPES
Explanation: If the column name at the left of LIKE or NOT LIKE is of type character, the
expression at the right and the ESCAPE character must be of type character. If the column name
is of type graphic, the expression at the right and the ESCAPE character must be of type
graphic.
User Response: Check the data type of every operand.
USQL -132 A LIKE PREDICATE IS INVALID BECAUSE THE SECOND OPERAND IS NOT A STRING
Explanation: The token following LIKE must be a special register, a string constant, or a host
variable with a string value.
User Response: The implied function is not supported by Db2. Refer to the SQL Reference
Manual for information about the proper syntax for LIKE and NOT LIKE predicates.
USQL -133 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
USQL -134 IMPROPER USE OF LONG STRING COLUMN column-name OR A HOST VARIABLE OF MAXIMUM LENGTH
GREATER THAN 254
Explanation: A long string was referenced in a context in which long strings are not allowed.
For an exhaustive list of such contexts, refer to Chapter 3 of the SQL Reference Manual.
User Response: The requested operation on a long string value is not supported by Db2.
Refer to the SQL Reference Manual for information about restrictions on the specification and
manipulation of long string values.
USQL -136 SORT CANNOT BE EXECUTED BECAUSE THE SORT KEY LENGTH IS GREATER THAN 4000 BYTES
Explanation: A sort key is derived from the list of columns specified following a DISTINCT
qualifier, or in an ORDER BY or GROUP BY clause. If both a DISTINCT qualifier and an ORDER
BY or GROUP BY clause are present, the sort key is derived from the combination of both lists
of columns.
The internal length of the sort key cannot exceed 4000 bytes. In attempting to process the SQL
statement, the internal length of the sort key derived from the DISTINCT and/or ORDER BY or
GROUP BY specifications was found to exceed that 4000-byte maximum.
User Response: The statement must be modified so that the internal length of the sort key
will not exceed 4000 bytes. In general, this means that one or more column names must be
deleted from the ORDER BY or GROUP BY clause, or the list following the DISTINCT qualifier.
USQL -137 RESULT OF CONCATENATION IS TOO LONG
Explanation: The length of the result of a concatenation exceeds 32,764 (if character
operands) or 16,382 (if graphic operands).
User Response: Ensure that the total of the lengths of the concatenated operands is less
than or equal to 32,764 (for character operands) or 16,382 (for graphic operands).
USQL -138 THE SECOND OR THIRD ARGUMENT OF THE SUBSTR FUNCTION IS OUT OF RANGE
If that query returns “C”, the package was bound with SQLERROR(CONTINUE).
SELECT STMTNO, TEXT
FROM SYSIBM.SYSPACKSTMT
WHERE COLLID = collection-id AND
NAME = package-id AND
VERSION = version-name AND
SECTNO = number AND
BINDERROR = "Y";
If that query returns any rows, the section is invalid. Refer to the error messages issued
during the bind to determine the cause. Correct any errors and bind the package again using
the REPLACE option.
For case #2: If the Db2 system has fallen back to a previous release, determine whether
there are any SQL statements with a section number of zero that are not supported
specifically by that release. You can use the following statements to query the Db2 catalog.
When executing from a DBRM, use:
SELECT *
FROM SYSIBM.SYSSTMT
WHERE SECTNO = 0
ORDER BY NAME,PLNAME,STMTNO,SEQNO;
For case #3: Examine the application to determine whether the call parameter list was
changed in some way. In general, you should not attempt to change the output of the
precompiler.
USQL -148 THE SOURCE TABLE source-name CANNOT BE RENAMED BECAUSE IT IS A VIEW OR AN ACTIVE RLST TABLE
OR HAS A SYNONYM DEFINED ON IT
Explanation: The RENAME statement cannot be used to rename a view, an active RLST table,
or a table for which a synonym is defined.
User Response: Change the source name to the name of an object that can be renamed and
reissue the statement.
USQL -150 THE OBJECT OF THE INSERT, DELETE, OR UPDATE STATEMENT IS A VIEW FOR WHICH THE REQUESTED
OPERATION IS NOT PERMITTED
Explanation: The view named in the INSERT, UPDATE, or DELETE statement is defined in such
a way that the requested insert, update, or delete operation cannot be performed upon it.
Inserts into a view are prohibited if:
– The view definition contains a join, a GROUP BY, or a HAVING clause.
– The SELECT clause in the view definition contains the DISTINCT qualifier, an arithmetic
expression, a string expression, a built-in function, or a constant.
– Two or more columns of the view are derived from the same column.
– A base table of the view contains a column that does not have a default value and is not
included in the view.
Updates to a view are prohibited if:
– The view definition contains a join, a GROUP BY, or a HAVING clause.
– The SELECT clause in the view definition contains the DISTINCT qualifier or a function.
In addition, a given column in a view cannot be updated (i.e., the values in that column
cannot be updated) if the column is derived from an arithmetic expression, a constant, a column
that is part of the key of a partitioned index, or a column of a catalog table that cannot be
updated.
Deletes against a view are prohibited if:
– The view definition contains a join, a GROUP BY, or a HAVING clause.
– The SELECT clause in the view definition contains the DISTINCT qualifier or a built-in
function.
User Response: The requested function cannot be performed on the view. Refer to Chapter 6
of the SQL Reference Manual for further information regarding inserting, deleting, and updating
views.
USQL -151 THE UPDATE STATEMENT IS INVALID BECAUSE THE CATALOG DESCRIPTION OF COLUMN column-name
INDICATES THAT IT CANNOT BE UPDATED
Explanation: The specified column cannot be updated for one of the following reasons:
– The object table is partitioned (i.e., resides in a partitioned table space) and the column is
included in the partitioning key.
– The object table is a view and the specified column is defined (in the definition of the
view) in such a way that it cannot be updated.
– The object table is a catalog table with no columns that can be updated.
The values for columns occurring in the partitioning key of a partitioned table cannot be
updated.
Individual columns in a view cannot be updated for one of the following reasons:
– The column is derived from an SQL function, an arithmetic expression, or a constant.
– The column is defined for a column that is in the partitioning key of a partitioned table.
– The column is defined for a column of an underlying view that cannot be updated.
User Response: The requested function is not supported by Db2. Refer to the description of
the UPDATE statement in Chapter 6 of the SQL Reference Manual for information about
restrictions on the ability to update columns in partitioned tables and views.
USQL -152 THE DROP clause CLAUSE IN THE ALTER STATEMENT IS INVALID BECAUSE constraint-name IS A constraint-type
Explanation: Either the DROP FOREIGN KEY clause of an ALTER TABLE statement tried to drop
a check constraint, or the DROP CHECK clause of an ALTER TABLE statement tried to drop a
referential constraint. The clause is either CHECK or FOREIGN KEY. The constraint-type is either
REFERENTIAL CONSTRAINT or CHECK CONSTRAINT.
User Response: Drop the existing object with the correct DROP clause of the ALTER TABLE
statement.
USQL -153 THE CREATE VIEW STATEMENT DOES NOT INCLUDE A REQUIRED COLUMN LIST
Explanation: You must specify a list of column names if the result table of the subselect has
duplicate column names or an unnamed column (a column derived from a constant, function, or
expression).
User Response: Correct the statement by providing a list of names for the columns of the
view. Refer to Chapter 6 of the SQL Reference Manual for information about the syntax of the
CREATE VIEW statement.
USQL -154 THE CREATE VIEW FAILED BECAUSE THE VIEW DEFINITION CONTAINS A UNION, A UNION ALL, OR A
REMOTE OBJECT
Explanation: The view defined in the CREATE VIEW statement contains a UNION, a UNION
ALL, or a remote object. Db2 cannot create views containing unions or a remote object.
User Response: Refer to Chapter 6 of the SQL Reference Manual for information about
restrictions on the definitions for views.
Explanation: The statements ALTER TABLE, DROP TABLE, LOCK TABLE, and CREATE INDEX
apply only to tables. Indexes can be defined only on tables.
User Response: Verify that the proper name was specified in the statement.
USQL -157 ONLY A TABLE NAME CAN BE SPECIFIED IN A FOREIGN KEY CLAUSE. object-name IS NOT THE NAME OF A
TABLE.
Explanation: The indicated object was identified in a FOREIGN KEY clause or a CREATE or
ALTER TABLE statement. A FOREIGN KEY clause must identify a table.
User Response: Correct the statement to specify a table name in the foreign key clause.
USQL -158 THE NUMBER OF COLUMNS SPECIFIED FOR THE VIEW IS NOT THE SAME AS THE NUMBER OF COLUMNS
SPECIFIED BY THE SELECT CLAUSE
Explanation: The number of column names specified for a view in a CREATE VIEW statement
must equal the number of elements (column names, SQL functions, expressions, etc.) specified in
the following AS SELECT clause.
User Response: Correct the syntax of the statement to specify a column name for each
column in the view to be created. Refer to Chapter 6 of the SQL Reference Manual for
information about the syntax of the CREATE VIEW statement.
USQL -159 DROP OR COMMENT ON token IDENTIFIES A(N) token RATHER THAN A(N) token
Explanation: The DROP VIEW statement can have only a view as its object. The DROP ALIAS
or COMMENT ON ALIAS statement can have only an alias as its object. You must use the DROP
TABLE statement to drop a table that is neither a view nor an alias. You must use the
COMMENT ON TABLE statement to comment on a table or view.
User Response: Correct the DROP VIEW, DROP ALIAS, or COMMENT ON ALIAS statement so
that the view name or the alias name is specified correctly (with the proper qualifier). If you
intended to drop or comment on the specified table, use the DROP TABLE or COMMENT ON
TABLE statement.
USQL -160 THE WITH CHECK OPTION CANNOT BE USED FOR THE SPECIFIED VIEW
Explanation: The WITH CHECK OPTION does not apply to a view definition under either of
the following circumstances:
– The view is read-only (for example, the view definition includes DISTINCT GROUP BY, or
JOIN).
– The view definition includes a subquery.
User Response: Refer to Chapter 6 of the SQL Reference Manual for rules regarding use of
the WITH CHECK OPTION in view definitions.
USQL -161 THE INSERT OR UPDATE IS NOT ALLOWED BECAUSE A RESULTING ROW DOES NOT SATISFY THE VIEW
DEFINITION
Explanation: The WITH CHECK OPTION applies to the view that is the object of the INSERT
or UPDATE statement. Consequently, all attempts to insert or update rows in that view are
checked to ensure that all results will conform to the view definition.
User Response: Examine the view definition to determine why the requested INSERT or
UPDATE was rejected. Note that this may be a data-dependent condition.
USQL -164 auth-id1 DOES NOT HAVE THE PRIVILEGE TO CREATE A VIEW WITH QUALIFICATION authorization ID
Explanation: The authorization ID auth-id does not have its own authorization ID. Specifically,
the attempt to create a view with a qualifier authorization-ID is rejected.
User Response: Do not attempt to create views with other than your own ID as a qualifier.
Only an authorization ID that holds SYSADM authority can create views for other authorization
IDs.
Explanation: An SQL statement includes the scalar function function-name with either too
many arguments or too few arguments.
User Response: Correct the statement. Refer to Chapter 4 of the SQL Reference Manual for
information about the number of arguments required by the scalar function function-name.
USQL -171 THE DATA TYPE, LENGTH, OR VALUE OF ARGUMENT nn OF function-name IS INVALID
Explanation: Either the data type, the length, or the value of argument nn of scalar function
function-name is incorrect.
User Response: Correct the statement. Refer to Chapter 4 of the SQL Reference
Manual regarding rules for each argument of the scalar function function-name.
USQL -173 UR IS SPECIFIED ON THE WITH CLAUSE BUT THE CURSOR IS NOT READ-ONLY
Explanation: The cursor is not a read-only cursor. WITH UR can be specified only if Db2 can
determine that the cursor is read-only.
User Response: If the cursor is intended to be read-only but is ambiguous, add the FOR
FETCH ONLY clause. If the cursor is updateable, change the isolation level specified on the WITH
clause.
Explanation: The length or string representation of a DATE, TIME, or TIMESTAMP value does not
conform to any valid format.
The value can contain one of the following:
– For a host variable, the position number of the input host variable. If the position number
cannot be determined, a blank is displayed.
– For a character string constant, the character string constant. The maximum length that is
displayed is the length of SQLERRM.
– For a character column, the column name. If the column is a VIEW column and it has a
corresponding base column, the VIEW column name is displayed. If the column is a VIEW
column but it does not have a corresponding base column, a string of *N is displayed.
Otherwise, value is a string of *N.
User Response: Correct the program to ensure the specified value conforms to the syntax of
DATE, TIME, and TIMESTAMP. Refer to Chapter 3 of the SQL Reference Manual for a list of valid
DATE and TIME formats.
USQL -181 THE STRING REPRESENTATION OF A DATETIME VALUE IS NOT A VALID DATETIME VALUE
Explanation: The string representation of a datetime is not in the acceptable range or is not
in the correct format. The proper ranges for datetime values are as follows:
DATETIME NUMERIC RANGE
Years 0001 to 9999
Months 1 to 12
Days April, June, 1 to 30
September, November 1 to 30
(months 4,6,9,11) 1 to 30
February (month 2) 1 to 28
(Leap Year
is 1 to 29)
January, March, 1 to 31
May, July, August 1 to 31
October, December 1 to 31
(months 1,3,5,7, 1 to 31
8,10,12) 1 to 31
Hours 0 to 24
(If the hour
is 24, other
parts of time
values are
zeroes. If
the hour is
USA, maximum
hour is 12.)
Minutes 0 to 59
Seconds 0 to 59
Microseconds 0 to 999999
User Response: Check whether the value is within the valid range and is in the proper
format. Refer to Chapter 3 of the SQL Reference Manual for information on string data formats.
Explanation: The specified arithmetic expression contains an improperly used datetime value or
labeled duration.
User Response: Correct the indicated arithmetic expression.
USQL -183 AN ARITHMETIC OPERATION ON A DATE OR TIMESTAMP HAS A RESULT THAT IS NOT WITHIN THE VALID
RANGE OF DATES
Explanation: The result of an arithmetic operation is a date or timestamp that is not within
the valid range of dates which are between 0001-01-01 and 9999-12-31.
User Response: Examine the SQL statement to see if the cause of the problem can be
determined. The problem may be data-dependent, in which case it will be necessary to examine
the data that was processed at the time the error occurred.
USQL -184 AN ARITHMETIC EXPRESSION WITH A DATETIME VALUE CONTAINS A PARAMETER MARKER
Explanation: The specified arithmetic expression contains a parameter marker improperly used
with a datetime value.
User Response: Correct the indicated arithmetic expression.
USQL -185 THE LOCAL FORMAT OPTION HAS BEEN USED WITH A DATE OR TIME AND NO LOCAL EXIT HAS BEEN
INSTALLED
Explanation: The local format option has been used with a datetime value and no datetime
exit has been installed. This may occur if the LOCAL DATE LENGTH or LOCAL TIME LENGTH on
the Installation Application Programming Defaults Panel indicated that an exit for datetime was
supplied, but in fact, the exit supplied by Db2 was not replaced. This may also occur if the
datetime exit was replaced and the corresponding LOCAL DATE LENGTH or LOCAL TIME LENGTH
on the Installation Application Programming Defaults Panel was not set to a non-zero value.
User Response: Contact the system programmer regarding installation of the date or time
exit.
USQL -186 THE LOCAL DATE LENGTH OR LOCAL TIME LENGTH HAS BEEN INCREASED AND THE EXECUTING PROGRAM
RELIES ON THE OLD LENGTH
Explanation: The local format option has been used with a datetime value and Db2 has
discovered that the datetime exit routine has been changed to produce a longer local format.
User Response: If the statement receiving this error is embedded in the application program,
a REBIND command must then be issued for the application plan. If the statement was dynamic
SQL, the statement can then be re-entered.
USQL -187 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
Explanation: Db2 has encountered an invalid time-of-day (TOD) clock. The user referenced
one of the special registers: (1) CURRENT DATE, (2) CURRENT TIME, (3) CURRENT TIMESTAMP,
or (4) CURRENT TIMEZONE. If the user referenced CURRENT TIMEZONE, the MVS parameter
PARMTZ was out of range.
User Response: For CURRENT TIMEZONE, check that the MVS parameter PARMTZ is between
-24 and +24 hours. For the other CURRENT special registers, check that the MVS TOD clock has
been set correctly.
USQL -188 THE STRING REPRESENTATION OF A NAME IS INVALID
Explanation: The host variable referenced in the DESCRIBE statement does not contain a valid
string representation of a name. One of the following error conditions has occurred:
– The first byte of the variable is a period or a blank.
– The number of identifiers is greater than 3.
– An identifier is too long.
– A period not contained in a delimited identifier is followed by a period or a blank.
– A delimited identifier is followed by a character other than a period or a blank.
– A delimited identifier is not terminated by a quotation mark.
User Response: Correct the value of the host variable so that it is a valid string
representation of a name.
USQL -189 CCSID ccsid IS UNKNOWN OR INVALID FOR THE DATA TYPE OR SUBTYPE
Explanation: To determine the subtype of an input host variable or result column, the
SYSSTRINGS catalog table was accessed with the specified CCSID and:
– The CCSID is not a value of either INCCSID or OUTCCSID,
or
– The TRANSTYPE column classifies the CCSID as GRAPHIC rather than CHARACTER.
This error can occur when SYSSTRINGS is accessed with a pair of CCSIDs to determine if a
translation is defined for the pair. In this case, the error is the inconsistency between the
data type of a string and the TRANSTYPE classification of its CCSID (one is GRAPHIC and the
other is CHARACTER).
This error can also occur when a CCSID specified in DECP does not exist as a value in the
INCCSID or OUTCCSID columns of SYSSTRINGS.
User Response: Ensure that the CCSID is valid and consistent with the data type of the
string. If a valid CCSID is not listed in a built-in row of SYSSTRINGS, it can be defined by
inserting a user-provided row. If a valid CCSID is misclassified in a user-provided row, that row
can be updated to correct the mistake. Refer to the appendices of your SQL Installation
Guide for more information on CCSIDs and to the SQL Reference Manual for more information
regarding the SYSSTRINGS catalog table.
Explanation: The operation required the translation of a mixed data character string to a
different coded character set. The string could not be translated because it does not conform to
the rules for well-formed mixed data. For example, the string does contains EBCDIC shift codes
that are not properly paired.
User Response: If the string contains the intended information, the description of the column
or host variable should be changed from MIXED DATA to BIT or SBCS DATA. If the description of
the column or host variable is correct, the string is the problem and it must be changed to
conform to the rules for the well-formed mixed data. For additional information regarding the
well-formed MIXED DATA, refer to Chapter 3 of the SQL Reference Manual.
USQL -197 QUALIFIED COLUMN NAMES IN ORDER BY CLAUSE NOT PERMITTED WHEN UNION OR UNION ALL IS
SPECIFIED
Explanation: A SELECT statement that specified both the union of two or more tables and the
ORDER BY clause cannot use qualified column names in the ORDER BY clause.
User Response: The statement is not executed.
USQL -198 THE OPERAND OF THE PREPARE OR EXECUTE IMMEDIATE STATEMENT IS BLANK OR EMPTY
Explanation: The operand (host variable or literal string) that was the object of the PREPARE
or EXECUTE IMMEDIATE statement either contained all blanks or was an empty string. A DBRM
built in Version 2, Release 3 cannot be used on a Version 2, Release 2 if the distributive
functions were used. If this error appears on Version 2, Release 2 and the DBRM was built on
Version 2, Release 3, the program needs to be precompiled again to correct the problem.
User Response: Correct the logic of the application program to ensure that a valid SQL
statement is provided in the operand of the PREPARE or EXECUTE IMMEDIATE statement before
that statement is executed.
USQL -199 ILLEGAL USE OF KEYWORD keyword. TOKEN token-list WAS EXPECTED
Explanation: A syntax error was detected in the statement at the point where the keyword
keyword appears. As an aid to the programmer, a partial list of valid tokens is provided in
SQLERRM as token-list. Only those tokens that will fit are listed. Some tokens in the list might
not be valid in statements to be executed by Db2; those tokens are valid for sending to other
database management systems.
User Response: Examine the statement in the area of the indicated keyword. A colon or an
SQL delimited might be missing.
Explanation: An unqualified column name is ambiguous if more than one table or view
identified in the FROM clause has a column with that name, or if more than one column of a
nested table expression has that name.
A qualified column name is ambiguous only if the qualifier is the correlation name for a nested
table expression and the column name is not unique.
User Response: If the problem is caused by a non-unique column name in a nested table
expression, you must change the nested table expression so that the column name is unique. If
the problem is caused by the use of an unqualified name, qualify it with a table, view, or
correlation name.
Explanation: The object identified by name is not defined in the Db2 subsystem. This
SQLCODE can be generated for any type of Db2 object.
User Response: Verify that the object name was correctly specified in the SQL statement,
including any required qualifiers. If it is correct, ensure that the object exists in the system
before resubmitting the statement.
If the specified object is a stored procedure, add a row to the SYSIBM.SYSPROCEDURES catalog
table to define the stored procedure. Issue the -START PROCEDURE command to activate the
new definition.
Explanation: No column with the specified column-name occurs in the table or view table-
name.
User Response: Verify that the column and table names are specified correctly (including any
required qualifiers) in the SQL statement.
USQL -206 column-name IS NOT A COLUMN OF AN INSERTED TABLE, UPDATED TABLE, OR ANY TABLE IDENTIFIED IN
A FROM CLAUSE
Explanation: This return code is utilized to report one of the following errors:
– In the case of an INSERT or UPDATE statement, the specified column is not a column of
the table or view that was specified as the object of the insert or update.
– In the case of a SELECT or DELETE statement, the specified column is not a column of any
of the tables or views identified in a FROM clause in the statement.
– There is a correlated reference in GROUP BY.
– There is an unresolved qualified reference in HAVING.
User Response: Verify that the column and table names are specified correctly in the SQL
statement. In the case of a SELECT statement, check to be sure that all of the required tables
were named in the FROM clause.
USQL -208 THE ORDER BY CLAUSE IS INVALID BECAUSE COLUMN name IS NOT PART OF THE RESULT TABLE
Explanation: The statement is invalid because a column (name) specified in the ORDER BY list
does not appear in the result table (that is, it is not specified by the SELECT-list). Only columns
that are to appear in the result table can be used in ordering that result.
User Response: Correct the syntax of the statement, either by adding the specified column to
the result table, or deleting it from the ORDER BY clause. Refer to Chapter 5 of the SQL
Reference Manual for information regarding restrictions on the use of the ORDER BY clause to
order the result of an SQL SELECT.
USQL -219 THE REQUIRED EXPLANATION TABLE table-name DOES NOT EXIST
Explanation: The EXPLAIN statement assumes the existence of the explanation table and it is
not defined in the Db2 subsystem as a base table. Refer to Chapter 6 of the SQL Reference
Manual for more information.
User Response: Determine whether the required explanation table does exist. If not, create
the required table.
USQL -220 THE COLUMN column-name IN EXPLANATION TABLE table-name IS NOT DEFINED PROPELY
Explanation: An error occurred during the insertion of a row into the explanation table. The
table is improperly defined for the following reasons:
– A column is missing.
– Columns are defined in the wrong order.
– The table contains an extra column.
– A column description is invalid because of its name, data type, length, or null attributes.
User Response: Correct the definition of the required explanation table. Refer to Chapter 6 of
the SQL Reference Manual for information on defining an explanation table.
USQL -221 “SET OF OPTIONAL COLUMNS” IN EXPLANATION TABLE table-name IS INCOMPLETE. OPTIONAL
COLUMN column-name IS MISSING.
Explanation: The EXPLAIN statement assumes the required explanation table is defined
properly. The optional column indicated is not defined in the indicated explanation table. PLAN-
TABLE can have none or all of the Version 2 Release 2 optional columns (PREFETCH, COLUMN-
FN-EVAL, or MIXOPSEQ. If the Version 2 Release 2 optional columns are present, it can also
have all or none of the optional Version 2 Release 2 columns (VERSION,COLLID).
User Response: Correct the definition of the required explanation table to include all five
optional columns, just the Version 2 Release 2 optional columns, or no optional columns
whatsoever. Refer to Chapter 6 of the SQL Reference Manual for information on defining an
explanation table.
Explanation: The LOCK TABLE statement has become invalid for one of the following reasons:
– The table space in which the table resides is not partitioned or does not have the
LOCKPART YES attribute, and the PART clause is specified.
– An integer specified in the PART clause does not identify a partition of the table space.
User Response: Determine whether the specified table resides in a partitioned table space
defined with LOCKPART YES.
– If it is partitioned and defined with LOCKPART YES, specify a PART clause that identifies the
partition you want to lock.
– If it is partitioned but does not have the LOCKPART YES attribute and you want to lock a
single partition, use ALTER TABLESPACE to change the LOCKPART attribute to YES.
– If it is not partitioned, do not specify the PART clause.
USQL -250 THE LOCAL LOCATION NAME IS NOT DEFINED WHEN PROCESSING A THREE-PART OBJECT NAME
Explanation: A three-part object name (table, view, or alias) cannot be used until the local
location name is defined.
User Response: Define the local location name and then retry the function.
Explanation: A location name cannot contain alphabetic characters. (The standard alphabetic
extenders in the United States are #, @, and $.)
User Response: Correct the location name.
USQL -300 THE STRING CONTAINED IN HOST VARIABLE OR PARAMETER position-number IS NOT NUL-TERMINATED
Explanation: A host variable or parameter is invalid. Its entry in the SQLDA is indicated by
position-number. The host variable or parameter is a C string variable that is one of the
following:
– Used as an input parameter to a stored procedure.
– Returned as an output parameter from a stored procedure.
– Referenced as an input variable in an embedded SQL statement.
– Used to provide a value for a parameter marker of a dynamic SQL statement.
If the data type of the variable is character string, it is invalid because it does not include
X”00”. If the data type of the variable is graphic string, it is invalid because it does not
include X”0000”.
User Response: Append a NUL-terminator to the end of the string.
USQL -301 THE VALUE OF INPUT HOST VARIABLE OR PARAMETER NUMBER position-number CANNOT BE USED AS
SPECIFIED BECAUSE OF ITS DATA TYPE
Explanation: Db2 received data that could not be used as specified in the statement because
its data type is incompatible with the requested function.
The position-number identifies either the host variable (if the message is issued as a result of an
INSERT, UPDATE, DELETE, or SELECT statement), or the parameter number (if the message is
issued as the result of a CALL statement).
User Response: Correct the application program or stored procedure. Ensure that the data
type of the indicated input host variable or parameter in the statement is compatible with the
way it is used.
USQL -302 THE VALUE OF INPUT VARIABLE OR PARAMETER NUMBER position-number IS INVALID OR TOO LARGE FOR
THE TARGET COLUMN OR THE TARGET VALUE
Explanation: Db2 received data that was invalid or too large to fit in the corresponding
column of the table or the corresponding target value. The position-number identifies either the
host variable number (provided the message is issued as a result of an INSERT, UPDATE,
DELETE, or SELECT statement), or the parameter number (if the message is issued as the result
of a CALL statement).
One of the following occurred:
– The column is defined as a string and the host variable or parameter contains a string that
is too long for the column.
– The column is defined as numeric and the host variable or parameter contains a numeric
value too large for the definition of the column.
– The host variable is defined as decimal, but contains invalid decimal data.
– The target value is a string constant and the host variable or parameter contains a string
that is too large for the target value.
– The target value is a numeric constant and the host variable or parameter contains a
numeric value that is too large for the target value.
User Response: Correct the application program or stored procedure. Check the column type
and length of the value or the data type and contents of the input host variable or parameter
position-number. Ensure that the value of the host variable or parameter will fit in the column or
contains valid decimal data. Valid decimal data is a System/370 packed decimal number.
USQL -303 A VALUE CANNOT BE ASSIGNED TO AN OUTPUT HOST VARIABLE NUMBER position-number BECAUSE THE
DATA TYPES ARE NOT COMPARABLE.
Explanation: A CALL, FETCH, or SELECT into the output host variable, whose entry in the
output SQLDA is indicated by position-number, could not be performed. The data type of the
variable was not compatible with the data type of the corresponding SELECT or CALL list
element. The output host variable and the corresponding SELECT or CALL list element must be in
one of the following categories:
– Both values must be numbers.
– Both values must be character strings.
– Both values must be graphic strings.
In addition, for both datetime and timestamp values, the host variable must be a character
string variable with a correct length.
User Response: Verify that the table definitions are current and that the host variable has
the correct data type.
USQL -304 A VALUE WITH DATA TYPE data-type1 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-type2
Explanation: A CALL, FETCH, or SELECT into a host variable list or structure in position
number position-number failed because the host variable with data type data-type2 was not large
enough to hold the retrieved value with data type data-type1.
User Response: Verify that the table definitions are current. Verify that the host variable has
the correct data type. Refer to the explanation for SQL CODE SQL0405 for ranges of SQL data
types.
USQL -305 THE NULL VALUE CANNOT BE ASSIGNED TO OUTPUT HOST VARIABLE NUMBER position-number BECAUSE NO
INDICATOR VARIABLE IS SPECIFIED
Explanation: A FETCH or embedded SELECT operation resulted in the retrieval of a null value
to be inserted into the output host variable, designated by an entry number position-number of the
output SQLDA, for which no indicator variable was provided. An indicator variable must be
supplied if a column returns a null value.
User Response: Examine the definition of the table that is the object of the FETCH or
SELECT, and correct the application program to then provide indicator variables for all host
variables into which null values can be retrieved. This includes host variables for columns which
can contain null values and host variables which receive the results of column functions whose
result table could be empty.
USQL -309 A PREDICATE IS INVALID BECAUSE A REFERENCED HOST VARIABLE HAS THE NULL VALUE
Explanation: The statement could not be processed because a host variable appearing in a
predicate such as:
column-name = host variable
had the NULL value. Such a predicate is not permitted when the host variable contains the NULL
value even though the object column might contain nulls.
User Response: Rebind the plan or package containing the statement. The condition described
is not an error in Db2 Version 2 Release 3 and later releases.
USQL -310 DECIMAL HOST VARIABLE OR PARAMETER number CONTAINS NON-DECIMAL DATA
Explanation: Db2 received non-decimal data from either an application (in the form of a host
variable) or a stored procedure (in the form of a parameter that was passed to or from a stored
procedure). The following sentence is the definition of number:
Identifies either the host variable number (if the message is issued
as a result of an INSERT, UPDATE, DELETE, or SELECT statement), or
the parameter number (provided the message is issued as the result of
a CALL statement).
User Response: Correct the application program or stored procedure. Ensure that all decimal
variables or parameters contain valid System/370 packed decimal numbers.
USQL -311 THE LENGTH OF THE INPUT HOST VARIABLE NUMBER position-number IS NEGATIVE OR GREATER THAN THE
MAXIMUM
Explanation: When evaluated, the length specification for input host string variable, whose
entry in the SQLDA is indicated by position-number, was negative or greater than the maximum.
User Response: Correct the program to ensure that the lengths of all host string variables
are not negative or that they are not greater than the maximum allowed length.
Explanation: The host variable variable-name appears in the SQL statement, but:
– The SQL statement is a prepared statement,
or
– The attributes of the variable are inconsistent with its usage in the static SQL statement,
or
USQL -313 THE NUMBER OF HOST VARIABLES SPECIFIED IS NOT EQUAL TO THE NUMBER OF PARAMETER MARKERS
Explanation: The number of host variables specified in the EXECUTE or OPEN statement is not
the same as the number of parameter markers (question marks) appearing in the prepared SQL
statement.
User Response: Correct the application program so that the number of host variables
specified in the EXECUTE or OPEN statement is the same as the number of parameter markers
appearing in the prepared SQL statement.
Explanation: A host variable used in the statement has been defined more than once in this
application program causing confusion as to which host variable definition should be used.
User Response: Make the host variable unique or use qualifications to indicate which host
variable definition is to be used.
USQL -327 THE ROW CANNOT BE INSERTED BECAUSE IT IS OUTSIDE THE BOUND OF THE PARTITION RANGE FOR
THE LAST PARTITION
Explanation: When a row is inserted, the calculated partition key value for the new row must
be within the bounds of a partition (as specified in the VALUES clause of the CREATE INDEX
statement).
User Response: Correct the statement to specify a value for the partition key that is within
the bounds of the last partition of the partitioned table space.
USQL -330 A STRING CANNOT BE USED BECAUSE IT CANNOT BE TRANSLATED. REASON reason-code, CHARACTER code-
point, HOST VARIABLE position-number
Explanation: A translation error occurred during the translation of a string to a different coded
character set. The type of error is indicated by the reason-code:
8 Length exception (for example,
expansion required for PC MIXED
data exceeds the maximum length
of the string).
If the reason-code is 12, code-point is the invalid code point. Otherwise, code-point is either
blank or an additional reason-code returned by an exit. If the string is the value of an input
host variable, the position-number is the ordinality of the variable in the SQLDA. If the string
is not the value of a host variable, the position-number is blank.
User Response: Take one of the following actions based on the reason-code:
– If the reason-code is 8, extend the maximum length of the host variable to allow for
expansion that occurs when the string is translated.
– If the reason-code is 12, change the translate table to accept the code-point or change the
data to eliminate the code-point.
– If the reason-code is 16 and the string is described as MIXED data, change its description
or change the string to conform to the rules for well-formed mixed data.
– If the reason-code is 20, correct the translate procedure.
– If the reason-code is 24, delete the SBCS character from the graphic string.
USQL -331 A STRING CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE IT CANNOT BE TRANSLATED. REASON
reason-code, CHARACTER code-point, POSITION position-number
Explanation: The operation required the translation of a string to the coded character set of
the host variable and a translation error occurred. The type of error (noted below) is indicated
by the reason-code:
– 8 for length exception (e.g., expansion required for PC MIXED data exceeds the maximum
length of the string).
– 12 for invalid code-point (e.g., use of the ERRORBYTE option of SYSSTRINGS).
– 16 for form exception (e.g., invalid MIXED data).
– 20 for translate procedure error (e.g., an exit set the length of the control field of the
string to an invalid value).
If the reason-code is 12, code-point is the invalid “code point”. Otherwise, code-point is blank.
The position-number is the ordinality of the output variable in the SQLDA.
User Response: If the reason-code is 8, the maximum length of the result column must be
extended to allow for the expansion that occurs when the string is translated. If the reason-code
is 12, the translate table must be changed to accept the code-point or the data must be
changed to eliminate the code point. If the reason-code is 16, and the string is described as
MIXED data, its description must be changed or the string must be changed to conform to the
rules for well-formed MIXED data. If the reason-code is 20, the translate procedure must be
corrected. An alternative to these corrective actions is to provide an indicator variable so that a
null value and a warning can be returned rather than an error. Refer to Chapter 3 of the SQL
Reference Manual for additional information on a coded character set.
USQL -332 SYSSTRINGS DOES NOT DEFINE A TRANSLATION FROM CCSID ccsid TO ccsid
USQL -333 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
Explanation: The CCSID in the run time SQLDA is inconsistent with the bind time subtype of
the host variable or parameter marker. Either the run time description is BIT and the bind time
description was not BIT, or the run time description is not BIT and the bind time description was
BIT.
User Response: Change the CCSID in the SQLDA so that the subtype of the host variable is
consistent with the bind time subtype of the host variable or parameter marker. Refer to Chapter
3 of the SQL Reference Manual for additional information on a coded character set.
USQL -339 THE SQL STATEMENT CANNOT BE EXECUTED FROM AN ASCII BASED DRDA APPLICATION REQUESTOR TO A
V2R2 DB2 SUBSYSTEM
Explanation: The application is connected to a Db2 Version 2 Release 3 database server. The
SQL statement is using an alias or three-part name, which refers to another Db2 subsystem that
is at the Version 2 Release 2 level. Db2 Version 2 Release 2 does not support character
conversion. Since the execution of SQL statements from an ASCII DRDA requester to an EBCDIC
Version 2 Release 2 Db2 server could require character conversion, access to the Version 2
Release 2 Db2 is denied for data integrity reasons.
User Response: Remove statements from the application that resolve to a Db2 Version 2
Release 2 subsystem.
Explanation: Some SQL data types are not supported by Db2 Version 5. “<position-number>”
is the position of the first element with an invalid data type in the SQLDA. A common reason
why this error occurs is when Db2 attempts to describe large object data residing at a non-Db2
server. Some of the SQLTYPEs that can cause this error are: LOB, BLOB, CLOB and DBLOB.
User Response: The application program must not include any SQL operations that describe
SQL data types which Db2 Version 5 does not support when Db2 is the application requester
(AR). For example, instead of dynamically selecting all columns from SYSTABLES, select only
those columns that have data types defined to Db2. If the error is caused by an unsupported
LOB type, exclude such data from the list of data to be described.
USQL -400 THE CATALOG HAS THE MAXIMUM NUMBER OF USER DEFINED INDEXES
Explanation: Only one hundred user-defined indexes can be created in the catalog database.
User Response: If this index must be created, another user-defined index on the catalog
must be dropped. After that index has been dropped, this statement can be executed.
USQL -401 THE OPERANDS OF AN ARITHMETIC OR COMPARISON OPERATION ARE NOT COMPARABLE
Explanation: An arithmetic operation appearing within the SQL statement has a mixture of
numeric and non-numeric operands, or the operands of a comparison operation are not
compatible.
User Response: Check the data types of all operands to ensure that their data types are
comparable and compatible with their usage in the statement.
If all the operands of the SQL statement are correct, and if a view is then being accessed,
check the data types of all the operands in the view definition.
USQL -402 AN ARITHMETIC FUNCTION OR OPERATOR arith-fop IS APPLIED TO CHARACTER OR DATETIME DATA
Explanation: A non-numeric operand has been specified for the arithmetic function or operator
“arith-fop”.
User Response: Examine and correct the syntax of the SQL statement such that all operands
of the specified function or operator are numeric.
USQL -404 THE UPDATE OR INSERT STATEMENT SPECIFIES A STRING THAT IS TOO LONG column-name
Explanation: An INSERT or UPDATE statement specifies a value that is longer than the
maximum-length string that can be stored in the indicated column.
User Response: Check the length of the object column and correct the program or SQL
statement so that the length of the insert or update string does not exceed that maximum.
USQL -405 THE NUMERIC LITERAL literal CANNOT BE USED AS SPECIFIED BECAUSE IT IS OUT OF RANGE
Explanation: The specified numeric literal is not in the proper range. The proper ranges for
SQL values are displayed below:
– 5.4E-79 to 7.2E+75 for FLOAT values
– -(10{31} -1) to + (10{31} -1) for DECIMAL values
– -2147483648 to 2147483647 for INTEGER values
– -32768 to +32767 for small integer (SMALLINT) values.
User Response: The value of the literal should be reduced to the appropriate size for this
data type.
USQL -406 A CALCULATED OR DERIVED NUMERIC VALUE IS NOT WITHIN THE RANGE OF ITS OBJECT COLUMN
Explanation: A value derived or calculated during the processing of the SQL statement was
outside the range of the data type of its object column. This problem might have arisen because
the values occurring in the object column were out of range, or because the SQL operation
performed was not appropriate for the values in the object column.
User Response: See the explanation of SQLCODE SQL0405 for allowed ranges for all numeric
data types.
USQL -407 AN UPDATE OR INSERT VALUE IS NULL, BUT THE OBJECT COLUMN column-name CANNOT CONTAIN NULL
VALUES
USQL -408 AN UPDATE OR INSERT VALUE IS NOT COMPARABLE WITH THE DATA TYPE OF ITS OBJECT COLUMN
column-name
Explanation: The data type of the value to be inserted or set in the column “column-name”
by an INSERT or UPDATE statement is incompatible with the declared data type of that column.
Both must be numeric or both must be graphic string; or both must be either:
– Dates or character
– Times or character
– Timestamps or character.
However, dates, times, or timestamps cannot be assigned to a specific character column that
has a field procedure.
User Response: Examine the current definition for the object table and ensure that the host
variable or literal value assigned to the specified column has the proper data type.
Explanation: The operand of the COUNT function in the statement violates SQL syntax. A
common error is a column name or other expression without DISTINCT.
User Response: Correct the syntax and resubmit the statement. Refer to Chapter 4 of the
SQL Reference Manual for information about the proper form for the operands of a COUNT
function.
USQL -410 THE FLOATING POINT LITERAL literal CONTAINS MORE THAN 30 CHARACTERS
USQL -411 CURRENT SQLID CANNOT BE USED IN A STATEMENT THAT REFERENCES REMOTE OBJECTS
Explanation: A reference to the CURRENT SQLID special register is invalid in a statement that
contains the three-part name or alias of an object that is remote to the remote server.
User Response: Remove the reference to CURRENT SQLID or remove the reference to the
remote object.
Explanation: In the context in which it was used in the SQL statement, the subquery can
have only one column specified in its SELECT clause.
User Response: Correct the syntax of the SQL statement. Refer to Chapter 5 of the SQL
Reference Manual for information about restrictions on the syntax for subqueries.
Explanation: During the processing of an SQL statement, an overflow condition arose when
converting from one numeric type to another. Numeric conversion is performed according to the
standard rules of SQL.
User Response: Examine the syntax of the SQL statement to determine the cause of the
error. If the problem is data-dependent, it may be necessary to examine the data processed at
the time of the error.
USQL -414 A LIKE PREDICATE IS INVALID BECAUSE THE FIRST OPERAND IS NOT A STRING
Explanation: The data type of the first operand of the LIKE predicate must be a character
string or graphic string.
User Response: Respecify the predicate so that the data type of each operand is a character
string or a graphic string.
USQL -415 THE CORRESPONDING COLUMNS, column-number, OF THE OPERANDS OF A UNION OR A UNION ALL DO
NOT HAVE COMPARABLE COLUMN DESCRIPTIONS
Explanation: The UNION specified in the SQL statement could not be performed because one
of the tables participating in the union contains a long string column (for example, a VARCHAR
column with length greater than 254). The operands of a UNION cannot contain long string
columns.
User Response: The implied function is not supported by Db2. Refer to Chapter 3 of the SQL
Reference Manual for information about restrictions on the manipulation of long string columns.
USQL -417 A STATEMENT STRING TO BE PREPARED INCLUDES PARAMETER MARKERS AS THE OPERANDS OF THE SAME
OPERATOR
Explanation: The statement string specified as the object of a PREPARE contains a predicate
or expression where parameter markers have been used as operands of the same operator. For
example:
?>?
USQL -418 A STATEMENT STRING TO BE PREPARED CONTAINS AN INVALID USE OF PARAMETER MARKERS
Explanation: Parameter markers cannot be used in the SELECT list, as the sole argument of a
scalar function, or in a concatenation function. Parameter markers cannot be used in the string
expression of an EXECUTE IMMEDIATE SQL statement.
User Response: Correct the logic of the application program so that this error does not occur.
Refer to Chapter 6 of the SQL Reference Manual for information about the proper usage of
parameter markers within SQL statements and for EXECUTE IMMEDIATE SQL statement
restrictions.
USQL -419 THE DECIMAL DIVIDE OPERATION IS INVALID BECAUSE THE RESULT WOULD HAVE A NEGATIVE SCALE
Explanation: The decimal division is invalid because it will result in a negative scale.
The formula used internally to calculate the scale of the result for decimal division is explained
in Chapter 3 of the SQL Reference Manual.
User Response: None.
USQL -420 THE VALUE OF A CHARACTER STRING ARGUMENT WAS NOT ACCEPTABLE TO THE function-name FUNCTION
Explanation: A character string argument did not conform to the requirements of the function.
For example, a character string passed to the DECIMAL function did not conform to the rules for
forming an SQL integer or decimal constant.
User Response: Change the argument value so it conforms to the requirements of the
function as specified in the SQL Reference Manual.
USQL -421 THE OPERANDS OF A UNION OR A UNION ALL DO NOT HAVE THE SAME NUMBER OF COLUMNS
Explanation: The operands of a UNION or UNION ALL must have the same number of
columns.
User Response: Correct the SQL statement so that there are exactly the same number of
columns in each operand.
Explanation: The value specified in a result set locator host variable does not identify a valid
result set locator.
User Response: There are two common causes for this error:
– The host variable used as a result set locator was never assigned a valid result set locator
value. Result set locator values are returned by the DESCRIBE PROCEDURE and ASSOCIATE
LOCATORS statements. Make sure the value in your host variable is obtained from one of
these two statements.
– Result set locator values are only valid as long as the underlying SQL cursor is open. If a
commit or rollback operation closes an SQL cursor, the result set locator associated with
the cursor is no longer valid.
USQL -426 DYNAMIC COMMIT NOT VALID AT AN APPLICATION SERVER WHERE UPDATES ARE NOT ALLOWED
Explanation: An application which is executing is using DRDA protocols. This application has
attempted to issue a dynamic COMMIT statement, or a stored procedure has attempted to issue
a COMMIT_ON_RETURN while connected to a location at which updates are not allowed. A
dynamic COMMIT or COMMIT_ON_RETURN can be issued only while connected to a location at
which updates are allowed.
User Response: The IMS or CICS protocols should be used to commit work in these
environments.
USQL -427 DYNAMIC ROLLBACK NOT VALID AT AN APPLICATION SERVER WHERE UPDATES ARE NOT ALLOWED
Explanation: An application which is executing using DRDA protocols has attempted to issue a
dynamic ROLLBACK statement while connected to a location at which updates are not allowed. A
dynamic ROLLBACK may be issued only during the time when an application is connected to a
location at which updates are allowed.
User Response: The IMS or CICS protocols should be used to rollback work in these
environments.
USQL -440 THE NUMBER OF PARAMETERS IN THE PARAMETER LIST DOES NOT MATCH THE NUMBER OF PARAMETERS
EXPECTED FOR STORED PROCEDURE name, AUTHID authid, and LUNAME luname. number PARAMETERS WERE EXPECTED.
Explanation: Db2 has received an SQL CALL statement for a stored procedure. Db2 found the
row in the SYSIBM.SYSPROCEDURES catalog table associated with the requested procedure name.
However, the number of parameters supplied on the CALL statement did not match the number
of parameters defined in the PARMLIST column of the SYSIBM.SYSPROCEDURES table. The
definition of a stored procedure might be cached. If you suspect that this message is being
issued because the cached definition of a procedure does not match the definition of a procedure
in the SYSIBM.SYSPROCEDURES table, issue the -START PROCEDURE command to refresh the
cache. Note the following definitions:
name The name of the stored
procedure from the
PROCEDURE field in
SYSIBM.SYSPROCEDURES.
User Response: If the SQL CALL statement is coded incorrectly, you must
modify the SQL application to provide the correct number of parameters on the SQL CALL
statement. If the PARMLIST column of the SYSIBM.SYSPROCEDURES table contains incorrect
information, you must make required updates to the PARMLIST column and then issue the -
START PROCEDURE command to activate the updated definition.
Explanation: Db2 received an SQL CALL statement for a stored procedure and found the row
in the SYSIBM.SYSPROCEDURES catalog table associated with the requested procedure name.
However, the MVS load module currently identified in the LOADMOD column of the
SYSIBM.SYSPROCEDURES row could not be found. Note the following definition:
name The name of the MVS
load module that
could not be found.
User Response: If the LOADMOD column value in the SYSIBM.SYSPROCEDURES table was
specified incorrectly, correct the value and issue the -START PROCEDURE command to activate
the changed definition. If the LOADMOD column value is correct, use the MVS linkage editor to
create the required MVS load module in one of the MVS load libraries used by your installation
for stored procedures.
USQL -450 STORED PROCEDURE name, PARAMETER NUMBER number OVERLAYED STORAGE BEYOND ITS DECLARED
LENGTH
User Response: Examine the stored procedure to determine the cause of the overlay. Ensure
that all parameters are declared correctly and that they match the definitions in
SYSIBM.SYSPROCEDURES for procedure name. If you suspect that an error exists in Db2, refer
to Section 3 of the Diagnosis Guide and Reference for information on identifying and reporting
the problem.
USQL -469 SQL CALL STATEMENT MUST SPECIFY AN OUTPUT HOST VARIABLE FOR PARAMETER number
Explanation: Db2 received an SQL CALL statement for a stored procedure. Db2 found the row
in the SYSIBM.SYSPROCEDURES catalog table associated with the requested procedure name.
However, parameter number was identified in the PARMLIST column of the
SYSIBM.SYSPROCEDURES table as an OUT or INOUT parameter. A host variable must be supplied
on the SQL CALL statement for parameters defined as OUT or INOUT. Note the following
definition:
number The parameter number
from the PARMLIST field
in SYSIBM.SYSPROCEDURES.
User Response: If the SQL CALL statement is coded incorrectly, you must modify the SQL
application to provide an output host variable on the SQL CALL statement. If the PARMLIST
column of the SYSIBM.SYSPROCEDURES table contains incorrect information, perform the required
updates to the PARMLIST column and issue the -START PROCEDURE command to activate the
updated definition.
USQL -470 AN SQL CALL STATEMENT SPECIFIED A NULL VALUE FOR INPUT PARAMETER number, BUT THE STORED
PROCEDURE DOES NOT SUPPORT NULL VALUES
Explanation: Db2 received an SQL CALL statement for a stored procedure and found a null
value in the incoming parameter list. The Db2 stored procedure was defined in the
SYSIBM.SYSPROCEDURES catalog table with LINKAGE=” “, which specifies that the Db2 stored
procedure does not accept null values. Note the following definition:
number The parameter number
from the PARMLIST field
in SYSIBM.SYSPROCEDURES.
User Response: If the stored procedure should not accept null values, change the calling
application to provide a nonnull value. If the stored procedure should accept null values, change
the LINKAGE column in SYSIBM.SYSPROCEDURES to N.
Use the -START PROCEDURE command to activate the changes to the SYSIBM.SYSPROCEDURES
table.
USQL -471 SQL CALL FOR STORED PROCEDURE name FAILED DUE TO REASON rc
Explanation: Db2 received an SQL CALL statement for a stored procedure. The CALL
statement was not accepted because of Db2 reason code rc. Note the following definitions:
name The name of the stored
procedure specified
on the SQL CALL
statement.
User Response: Correct the condition described by the Db2 reason code.
USQL -480 THE PROCEDURE procedure-name HAS NOT YET BEEN CALLED
USQL -496 THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE IT REFERENCES A RESULT SET THAT WAS NOT
CREATED BY THE CURRENT SERVER
Explanation: The SQL statement cannot be executed because the current server is different
from the server that called a stored procedure. The SQL statement can be any of the following:
– ALLOCATE CURSOR
– DESCRIBE CURSOR
– FETCH (using an allocated cursor)
– CLOSE (using an allocated cursor)
User Response: Connect to the server that called the stored procedure which created the
result set before running the SQL statement that failed.
USQL -497 THE LIMIT OF 32767 OBIDS HAS BEEN EXCLUDED FOR DATABASE database-name
Explanation: An attempt was made to create an object in database database-name, but the
limit of 32767 OBIDs has been exceeded for that database.
User Response: DROP all unused objects in this database and issue a COMMIT, specify a
different database, or run the MODIFY utility to reclaim unused OBIDs.
USQL -499 CURSOR cursor-name HAS ALREADY BEEN ASSIGNED TO THIS OR ANOTHER RESULT SET FROM PROCEDURE
procedure-name
Explanation: An attempt was made to assign a cursor to a result set using the SQL
statement ALLOCATE CURSOR and one of the following applies:
– The result set locator variable specified in the ALLOCATE CURSOR statement has been
previously assigned to cursor cursor-name.
– The cursor cursor-name, specified in the ALLOCATE CURSOR statement has been previously
assigned to a result set from stored procedure procedure-name.
User Response: Determine if the target result set named in the ALLOCATE CURSOR statement
has been previously assigned to a cursor.
If the result set has been previously assigned to cursor cursor-name, choose another target
result set or choose the call stored procedure procedure-name again and reissue the
ASSOCIATE LOCATOR and ALLOCATE CURSOR statements. If the result set has not been
previously assigned to a cursor, the cursor cursor-name specified in the ALLOCATE CURSOR
statement has been previously assigned to some result set from stored procedure procedure-
name. You can not assign cursor cursor-name to another result set, so you must specify a
different cursort name in the ALLOCATE CURSOR statement.
USQL -500 THE IDENTIFIED CURSOR WAS CLOSED WHEN THE CONNECTION WAS DESTROYED
Explanation: The FETCH, UPDATE, DELETE, or CLOSE statement identifies a closed cursor that
was defined with the WITH HOLD option. The cursor was closed when the connection on which it
was dependent was destroyed during a commit operation. The connection was destroyed because
the application process placed it in the released state, or the application plan was bound with
the DISCONNECT(AUTOMATIC) option.
User Response: The correction depends on the desired state of both the cursor and the
connection, as noted below:
– If you want the cursor closed, you must change the application program so that the cursor
is not referenced in the closed state.
– If you want the cursor open, and the connection was placed in the released state by the
application program, you must change the program so that the connection is not placed in
the released state until the cursor is explicitly closed.
– If you want the cursor open and the connection was placed in the released state as a
result of the DISCONNECT(AUTOMATIC) option, rebind the plan using
DISCONNECT(CONDITIONAL).
Correct the error in the application, rebind the plan, and resubmit the job.
USQL -501 THE CURSOR IDENTIFIED IN A FETCH OR CLOSE STATEMENT IS NOT OPEN
Explanation: The application program attempted to execute an OPEN statement for a cursor
that was already open.
User Response: Correct the logic of the application program to ensure that it does not
attempt to execute an OPEN statement for a cursor that is already open.
USQL -503 A COLUMN CANNOT BE UPDATED BECAUSE IT IS NOT IDENTIFIED IN THE UPDATE CLAUSE OF THE
SELECT STATEMENT OF THE CURSOR
Explanation: The application program attempted to update (while using a cursor) a value in a
column of the object table that was not identified in the FOR UPDATE clause in the cursor
declaration. Any column that is to be updated must be identified in the FOR UPDATE clause of
the cursor declaration.
User Response: Correct the application program. If the column is to be updated, its name
must be added to the FOR UPDATE clause of the cursor declaration.
Explanation: Cursor cursor-name was referenced in an SQL statement. One of the following
statements is true.
– Cursor cursor-name was not declared (using the DECLARE CURSOR statement) or allocated
(using the ALLOCATE CURSOR statement) in the application program before it was
referenced.
– Cursor cursor-name was referenced in a positioned UPDATE or DELETE statement which is
not a supported operation for an allocated cursor.
– Cursor cursor-name was allocated, but a CLOSE cursor statement naming cursor-name was
issued and deallocated the cursor before this cursor reference.
– Cursor cursor-name was allocated, but a ROLLBACK operation occurred and it deallocated
the cursor before this cursor reference.
– Cursor cursor-name was allocated, but its associated cursor which was declared in a stored
procedure was not declared WITH HOLD, and a COMMIT operation occurred and
subsequently deallocated the cursor before this cursor reference. The COMMIT operation
can be explicit (like the COMMIT statement) or implicit (like a stored procedure defined as
COMMIT_ON_RETURN = “Y” was called before this cursor reference).
– Cursor cursor-name was allocated, but its associated stored procedure was called again
since the cursor was allocated, the new results sets were returned, and cursor cursor-
name was deallocated.
User Response: Check the application program for completeness and for a possible spelling
error in the cursor declaration or allocation. The declaration for, or allocation of, a cursor, must
appear in an application program before SQL statements that reference the cursor. If the cursor-
name was <UNKNOWN>, the cursor was not successfully declared or allocated. This can occur if
SQL(Db2) was used, and a warning message was issued during precompilation. Check the
precompile output for warning messages on the DECLARE CURSOR or ALLOCATE CURSOR
statement, and then correct the statement. Regarding an allocated cursor, please note the
following: If an implicit or explicit COMMIT, ROLLBACK, or CLOSE occurred since the cursor was
successfully allocated, you must modify the application program logic to do one of the following
tasks:
– After the COMMIT, ROLLBACK, or CLOSE operation, call the associated stored procedure
again, and then reissue the ASSOCIATE LOCATORS and ALLOCATE CURSOR statements.
– For COMMIT, declare the associated cursor in the stored procedure WITH HOLD so the
COMMIT operation will not deallocate the cursor.
For an allocated cursor, if the associated stored procedure was called again and the new
result sets were returned because the cursor was allocated, reissue the ASSOCIATE LOCATORS
and ALLOCATE CURSOR statements.
USQL -507 THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT OPEN
USQL -508 THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT POSITIONED ON A ROW
USQL -509 THE TABLE IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT THE SAME TABLE DESIGNATED BY
THE CURSOR
USQL -510 THE TABLE DESIGNATED BY THE CURSOR OR THE UPDATE OR DELETE STATEMENT CANNOT BE MODIFIED
This error code is also returned when the table exists at a remote location and Db2 has
employed block fetching because you explicitly declared the cursor FOR FETCH ONLY, or because
the application is bound CURRENTDATA(NO) and the cursor is ambiguous. This error code is also
returned if Db2 has employed parallelism to execute the SELECT statement associated with the
cursor named in a DELETE WHERE CURRENT OF cursor statement. Or, the error code is also
returned if a DELETE WHERE CURRENT OF is issued against a row which Db2 cannot guarantee
to have not been modified by another application since the specific time when the cursor was
positioned upon it (in accordance with ISO(CS) semantics for an ambiguous cursor in an
application bound CURRENTDATA(NO)).
User Response: The requested UPDATE or DELETE cannot be performed. Refer to Chapter 6
of the SQL Reference Manual for information about restrictions on using UPDATE and DELETE
operations against views. For a remote table, modify the DECLARE CURSOR and then rebind the
PLAN. For a cursor that uses parallelism, disable parallelism for the query by using the
DEGREE(1) BIND option for static SQL or by setting the CURRENT DEGREE special register to “1”
for dynamic SQL. For an ambiguous cursor in a application bound CURRENTDATA(NO), make the
cursor unambiguous (declare it FOR UPDATE OF) or rebind the application CURRENTDATA(YES).
USQL -511 THE FOR UPDATE CLAUSE CANNOT BE SPECIFIED BECAUSE THE TABLE DESIGNATED BY THE CURSOR
CANNOT BE MODIFIED
Explanation: The result table of the SELECT statement cannot be updated. This can occur if
the SELECT specifies more than one table or view in the FROM clause, provided the SELECT list
contains a built-in function or DISTINCT, or if the statement contains an ORDER BY or GROUP BY
or HAVING clause. This can also occur if a view is specified in the FROM clause and the view
cannot be updated.
User Response: Updates cannot be performed on the result table as it is specified. Refer to
Chapter 6 of the SQL Reference Manual for information regarding restrictions on the updating of
views.
USQL -513 THE ALIAS alias-name MUST NOT BE DEFINED ON ANOTHER LOCAL OR REMOTE ALIAS
Explanation: The object indicated by “alias-name” is a local or remote alias. An alias is not
allowed to be defined on a local alias, and it should not be defined on a remote alias.
User Response: Modify the SQL statement to ensure that all object references are to base
tables or views.
Explanation: The application program has tried to use a cursor, cursor-name that is not in a
prepared state. The cursor is associated with a statement that (1) has never been prepared, or
(2) has been invalidated by a commit or rollback operation.
User Response: For case (1), ensure that you prepare the statement that is named in the
DECLARE CURSOR statement for cursor-name before you try to open the cursor. For case (2),
perform one of the following:
– Use the WITH HOLD option of DECLARE CURSOR.
– Do not execute a commit or rollback operation until you are finished using the cursor.
– Prepare the statement again after the commit or rollback.
USQL -516 THE DESCRIBE STATEMENT DOES NOT IDENTIFY A PREPARED STATEMENT
Explanation: An attempt was made to execute a DESCRIBE for a statement that had not
been successfully prepared beforehand. This error can occur when the DESCRIBE originates on an
application requester that supports extended dynamic SQL. Because the target statement is static
on the Db2 for MVS/ESA subsystem, the DESCRIBE statement fails.
User Response: Correct the logic of the application program to ensure that a statement is
properly prepared before a DESCRIBE of the statement is attempted. If the DESCRIBE is a
distributed request that originated on a system that supports extended dynamic SQL, contact
your System Administrator about changing the Db2 subsystem parameter DESCSTAT to YES to
tolerate these DESCRIBE requests against static SQL.
USQL -517 CURSOR cursor-name CANNOT BE USED BECAUSE ITS STATEMENT NAME DOES NOT IDENTIFY A PREPARED
SELECT STATEMENT
Explanation: The cursor “cursor-name” could not be used as specified because the prepared
statement named in the declaration for the cursor was not a SELECT statement.
User Response: Verify that the statement-name is specified correctly in the PREPARE
statement and in the DECLARE CURSOR statement for cursor “cursor-name”. Alternatively, correct
the application program logic to ensure that only prepared SELECT statements are used in
association with cursor declarations.
USQL -518 THE EXECUTE STATEMENT DOES NOT IDENTIFY A VALID PREPARED STATEMENT
USQL -519 THE PREPARE STATEMENT IDENTIFIES THE SELECT STATEMENT OF THE OPENED CURSOR cursor-name
Explanation: The application program has attempted to PREPARE (actually, it has attempted to
re-PREPARE) the SELECT statement for the specified cursor at a time when that cursor was
already open.
User Response: Correct the logic of the application program so that it does not attempt to
re-PREPARE the SELECT statement for a cursor when that cursor is open.
USQL -525 THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE IT WAS IN ERROR AT BIND TIME FOR SECTION =
sectno PACKAGE = pkgname CONSISTENCY TOKEN = X”contoken”