SQL Error
SQL Error
com 1-800-669-7076
INSTANT EXPERT: SQL ERROR CODES INSTANT EXPERT: SQL ERROR CODES
DB2 UDB Version 8 for z/OS INSTANT EXPERT: SQL ERROR CODES
• If SQLCODE = 100, “no data” was found. For example, a FETCH • -180 THE DATE, TIME, OR TIMESTAMP VALUE value IS INVALID.
statement returned no data because the cursor was posi- Suggestion: Verify the data value is in the correct range and
tioned after the last row of the result table. value type.
• (DB2 V8) New with Version 8, when DB2 processes a multiple- • -181 THE STRING REPRESENTATION OF A DATETIME VALUE IS
row FETCH statement, the contents of SQLCODE is set to +100 NOT A VALID DATETIME VALUE. Suggestion: Verify data format
if the last row in the table has been returned with the set of with the SQL Reference Guide.
rows.
• -204 name IS AN UNDEFINED NAME. Suggestion: Correct DB2
CREATOR or OBJECT NAMEs located in SQL statements.
SQLCODE - Successful SQL Execution
• +100 ROW NOT FOUND FOR FETCH, UPDATE OR DELETE, OR • -227 (DB2 V8) FETCH fetch-orientation IS NOT ALLOWED,
THE RESULT OF A QUERY IS AN EMPTY TABLE. Suggestion: If BECAUSE CURSOR cursor-name HAS AN UNKNOWN POSITION
expecting data, verify WHERE clause for accuracy and com- (sqlcode,sqlstate). Suggestion: CLOSE and re-OPEN the cursor;
pleteness. For scrollable use (FIRST, LAST, BEFORE, AFTER, or ABSOLUTE)
to establish valid position.
• +117 THE NUMBER OF INSERT VALUES IS NOT THE SAME AS
THE NUMBER OF OBJECT COLUMNS. Suggestion: Correct SQL • -305 THE NULL VALUE CANNOT BE ASSIGNED TO OUTPUT HOST
statement to provide only one value for each column in the VARIABLE NUMBER position-number BECAUSE NO INDICATOR
table. VARIABLE IS SPECIFIED. Suggestion: Add null indicator variable
to SELECT statement in the format of “column:hostvarind”
• +231 (DB2 V8) CURRENT POSITION OF CURSOR cursor-name IS
NOT VALID FOR FETCH OF THE CURRENT ROW. Suggestion: Be • -501 THE CURSOR IDENTIFIED IN A FETCH OR CLOSE STATEMENT
certain to FETCH to position on a row after opening a cursor. IS NOT OPEN. Suggestion: Correct logic in application program
If cursor is declared SENSITIVE STATIC SCROLL, the row may be to OPEN the cursor before the FETCH or CLOSE statement.
a hole, from which no values can be fetched. • -502 THE CURSOR IDENTIFIED IN AN OPEN STATEMENT IS AL-
• +304 A VALUE WITH DATA TYPE data-type1 CANNOT BE AS- READY OPEN. Suggestion: Correct logic in application program
SIGNED TO A HOST VARIABLE BECAUSE THE VALUE IS NOT to CLOSE the CURSOR before the OPEN statement.
WITHIN THE RANGE OF THE HOST VARIABLE IN POSITION posi- • -503 A COLUMN CANNOT BE UPDATED BECAUSE IT IS NOT IDEN-
tion-number WITH DATA TYPE data-type2. Suggestion: Verify TIFIED IN THE UPDATE CLAUSE OF THE SELECT STATEMENT OF
DCLGEN host variable definitions are current with DB2 catalog THE CURSOR. Suggestion: Use FOR UPDATE statement in your
table/view attributes. cursor.
• +347 (DB2 V8) THE RECURSIVE COMMON TABLE EXPRESSION • -530 THE INSERT OR UPDATE VALUE OF FOREIGN KEY constraint-
name MAY CONTAIN AN INFINITE LOOP. Suggestion: Verify name IS INVALID. Suggestion: Ensure that INSERT row for DB2
predicate in the SQL WHERE clause of the form “counter_col < PARENT table is completed before INSERT row in CHILD table.
constant” or “counter_col < :hostvar.
• -532 THE RELATIONSHIP constraint-name RESTRICTS THE DELE-
• +802 EXCEPTION ERROR exception-type HAS OCCURRED DUR- TION OF ROW WITH RID X’rid-number‘. Suggestion: Change the
ING operation-type OPERATION ON data-type DATA, POSITION program to DELETE CHILD table row before DELETE of row on
position-number. Suggestion: Check arithmetic operation for PARENT table.
divide by zero or result to exceed size of host variable.
• -551 auth-id DOES NOT HAVE THE PRIVILEGE TO PERFORM
OPERATION operation ON OBJECT object-name. Suggestion:
SQLCODE - Unsuccessful SQL Execution Contact the support DBA to GRANT the needed privilege.
• -117 THE NUMBER OF VALUES ASSIGNED IS NOT THE SAME AS
THE NUMBER OF SPECIFIED OR IMPLIED COLUMNS. • -803 AN INSERTED OR UPDATED VALUE IS INVALID BECAUSE
Suggestion: Provide one value for each column in the table. THE INDEX IN INDEX SPACE indexspace-name CONSTRAINS
COLUMNS OF THE TABLE SO NO TWO ROWS CAN CONTAIN DU-
• -150 (DB2 V8) THE OBJECT OF THE INSERT, DELETE, OR UPDATE PLICATE VALUES IN THOSE COLUMNS. RID OF EXISTING ROW IS
STATEMENT IS A VIEW, SYSTEM-MAINTAINED MATERIALIZED Xrid. Suggestion: Verify DB2 INDEX and, if needed, change the
QUERY TABLE, OR TRANSITION TABLE FOR WHICH THE REQUEST- statement to an UPDATE.
ED OPERATION IS NOT PERMITTED. Suggestion: Be certain to
specify base DB2 table/view names for INSERT statements.