2011-09-28 98 views
19

时,当我在插入数据表(DB2),我得到这个错误:DB2 SQLCODE -668插入

Message: Operation not allowed for reason code "7" on 
table "ELSAG.ICGR1106".. SQLCODE=-668, SQLSTATE=57016, DRIVER=3.50.152,... 

,当我GOOGLE了它,我发现前面的ALTER TABLE语句试图添加一个列添加到具有使用行属性敏感性定义的编辑过程的表。没有列可以添加到此表中。

有没有办法纠正它?

一旦我放弃并重新创建表格,我可以再次插入。

在此先感谢。

回答

7

根据此: SQL0668

你也做了一些改变,以表其需要REORG,然后才能进一步更新表。

对表运行REORG实用程序,你应该没问题。

+0

此外,根据DB2 LUW它可能是一个 “设置完整性” 之后的 “ALTER TABLE” 或 “LOAD” 发生是必需的。 – Turophile

37

要添加到詹姆斯的答案,救人时间四处寻找,你可以通过任何可用的SQL客户端执行

CALL SYSPROC.ADMIN_CMD('REORG TABLE MY_TABLE_NAME') 

(即甚至在ODBC或JDBC连接)来纠正这个问题。但是,连接必须处于自动提交模式,您必须拥有管理员权限才能执行此命令。

我强烈建议在调用之前阅读REORG上的文档。

+0

这工作正常! – Shalika

3

CALL SYSPROC.ADMIN_CMD( 'REORG TABLE TABLE_NAME')解决了这个问题

相关问题