小编典典

db2中更新表失败,SQLCODE:-668,SQLSTATE:57016,SQLERRMC:7;

sql

我正在使用db2 9.5,我已经在表中创建了一个成功创建的列,但是我无法更新表列并得到以下错误

[错误]脚本行:1-1 -------------------------- DB2
SQL错误:SQLCODE:-668,SQLSTATE:57016,SQLERRMC: 7; DB2ADMIN.XCATENTRYEXT消息:由于表“
DB2ADMIN.XCATENTRYEXT”上的原因码“ 7”而不允许进行操作。

在Google上的一些博客/网站之后,我找到了REORG命令作为解决方案,如以下链接
http://bytes.com/topic/db2/answers/508869-reorg-
tablespace中所述

我已经尝试了以下查询来在数据库上运行以解决该问题。

Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE')")

REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE

REORG TABLE DB2ADMIN.XCATENTRYEXT 
REORG INDEXES I0000908 FOR TABLE DB2ADMIN.XCATENTRYEXT

但所有查询在结果中都有相同的错误,例如

 DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601, SQLERRMC: Database;BEGIN-OF-STATEMENT;<variable_set>
 Message: An unexpected token "Database" was found following "BEGIN-OF-STATEMENT".  Expected tokens may include:  "<variable_set>".

我被卡在这个错误上,我什至无法更新该特定表的任何列。


阅读 239

收藏
2021-03-17

共1个答案

小编典典

从错误消息得出的结论是,您以某种方式将整个字符串提交Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_IDINPLACE')")为SQL语句,这显然是不正确的。

只需在shell命令行上发出以下命令:

db2 connect to <your database name here>
db2 REORG TABLE DB2ADMIN.XCATENTRYEXT
2021-03-17