One of our users created a somewhat complex update statement that was intended to update about 1600 rows in a table. The update statement was coded to eliminate the possibility of duplicate rows, however we continued to encounter -803 responses.
SQLCODE = -803, ERROR: AN INSERTED OR UPDATED VALUE IS INVALID BECAUSE INDEX IN INDEX SPACE UNQNDX1 CONSTRAINS COLUMNS OF THE TABLE SO NO TWO ROWS CAN CONTAIN DUPLICATE VALUES IN THOSE COLUMNS. RID OF EXISTING ROW IS X'00000FC90F'.
We were somewhat at a loss to identify which row was causing this error. The below SQL was able to identify the row that was causing the issue. This also identified the logic error in the update SQL.
SELECT RID(owner.table_name), owner.table_name.* FROM owner.table_name WHERE RID(owner.table_name) = 1034511 ;
The hex value reported above was X’00000FC90F’. Use the below calculator to convert this to decimal:
http://www.rapidtables.com/convert/number/hex-to-decimal.htm