1

执行插入时,我收到以下错误消息

AN INSERTED OR UPDATED VALUE IS INVALID BECAUSE INDEX IN INDEX SPACE xxxxx CONSTRAINS 
COLUMNS OF THE TABLE SO NO TWO ROWS CAN CONTAIN DUPLICATE VALUES IN THOSE COLUMNS. 
RID OF EXISTING ROW IS X'0000000A20'.. SQLCODE=-803, SQLSTATE=23505, DRIVER=3.53.95

如何进行选择以获取数据库中已存在的行?

平台是 z/OS;SELECT GETVARIABLE('SYSIBM.VERSION') FROM SYSIBM.SYSDUMMY1返回DSN09015所以我猜那是第 9 版

4

2 回答 2

3

X'0000000A20'是十六进制格式。您可以使用 Windows calc 翻译它。

A20 = 2592

所以你可以做SELECT * FROM table_name where RID(table_name) = 2592,你会得到你需要的

于 2013-05-29T11:15:59.313 回答
1

您应该考虑使用 DSN1PRNT 实用程序,它可以帮助您以本机格式读取 db2 zos 数据页(即使数据被压缩)。阅读 SYSPRINT 并找到您的数据。

请记住,RID 是此文件中的地址:X'PPPPPPPPII'

如果 RID 是:X'0000000A20' 那么页码是 X'0000000A' 并且行 ix x'20' 的 Id(x'20' 是 32 十进制 ==> 页面中的第 32 行)找到的地址SYSPRINT 中 ID-MAP 表的第 32 行并享受您的数据。

于 2016-06-30T08:59:34.007 回答