View previous topic :: View next topic
|
Author |
Message |
pch1982cn
New User
Joined: 02 Apr 2006 Posts: 10 Location: Dalian.China
|
|
|
|
DSNT408I SQLCODE = -803, ERROR: AN INSERTED OR UPDATED VALUE IS INVALID BECAUSE INDEX IN INDEX SPACE FMSXCCO1
CONSTRAINS COLUMNS OF THE TABLE SO NO TWO ROWS CAN CONTAIN DUPLICATE VALUES IN THOSE COLUMNS. RID OF EXISTING
ROW IS X'000064CA20
DSNT418I SQLSTATE = 23505 SQLSTATE RETURN CODE
DSNT415I SQLERRP = DSNXRUID SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD = -110 13172739 0 13817814 -490143744 0 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD = X'FFFFFF92' X'00C90003' X'00000000' X'00D2D7D6' X'E2C90000' X'00000000' SQL DIAGNOSTIC
INFORMATION
For this error message, could we identify which record is duplicated using the row ID '000064CA20'? or only used by utilities?
Does the row ID assign to each row dynamically? for example, if some rows were deleted, will their ID be released and assign to other new rows? |
|
Back to top |
|
|
martin9
Active User
Joined: 01 Mar 2006 Posts: 290 Location: Basel, Switzerland
|
|
|
|
hy pch1982cn,
note: sql -803 you get on the index part, not on the data part.
therefore code in your program some displays, whenever
sql -803 occurs, write out the keys...
this will help you immediately....
martin9 |
|
Back to top |
|
|
pch1982cn
New User
Joined: 02 Apr 2006 Posts: 10 Location: Dalian.China
|
|
|
|
Thanks martin9.
Yes, this is a good way to trace problem
But the row ID is just for index information? cannot associate to the data part manually? i.e. we cannot know which row is it by the row ID .. ? |
|
Back to top |
|
|
Jag
New User
Joined: 07 Dec 2005 Posts: 30 Location: India
|
|
|
|
Hi ,
The -803 as all of you know it comes due to the voilation of the primary key.When a row is insteredor updated where the primary key data of the row is equal to the primary key data if the row (Which already exists)..
Then come to the ROWID part..Its a memory refernce of the rows which you used to get the rows at the time of the data retirevl etc...The Row Id's are stored in the statistics of the DB2..When a row of table is deleted the corresponding ROW ID may be used by another row (AS another row inserted may be stored in that particular memeroy location)..
I hope i gave some useful information to you ... :-)
Cheers,
Jag,
Email: ***EMail ID REMOVED... Read Forum Rules*** |
|
Back to top |
|
|
pch1982cn
New User
Joined: 02 Apr 2006 Posts: 10 Location: Dalian.China
|
|
|
|
thanks Jag! |
|
Back to top |
|
|
Jag
New User
Joined: 07 Dec 2005 Posts: 30 Location: India
|
|
|
|
I forgot to add one imprtant point..
As i said the ROW ID can be resued but only after the REORG..is done..Till then the refernce will be deleted from the DB2 catalog. The deleted record will be there in the specified memory location physically...When the REORG is done the system will rearragne the rows and catalog the info once again..when the Row id can be used again..
Cheers,
Jag,
Email: ***EMail ID REMOVED... Read Forum Rules*** |
|
Back to top |
|
|
|