截断 table。错误消息 = sqlcode -668 sqlerrmc=7

truncate table. Error Msg = sqlcode -668 sqlerrmc=7

我正在尝试 运行 DBEAVER 上的这个 DB2 查询:

TRUNCATE table departments immediate

但是我得到了这个错误:

DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016, SQLERRMC=7;DB2INST1.DEPARTMENTS, DRIVER=4.19.49

(当我在 DBEVAER(外部频道)上 运行 在本地 运行 时,它就发生了。

帮助别人?

带有 sqlerrmc=7 的 sqlcode -668(这个 7 是“原因代码”)表示:

SQL0668N Operation not allowed for reason code "" on table "".

并且原因代码 7 表示:

The table is in the reorg pending state. This can occur after an ALTER TABLE statement containing a REORG-recommended operation.

如果您的用户 ID 具有正确的权限,请尝试:

reorg table db2inst1.departments 

如果您可以通过命令行访问 Db2,或者从 jdbc 应用程序(如 DBeaver)call admin_cmd ('reorg table db2inst1.departments')

但是,如果您的帐户缺少权限,或者如果您的 Db2-server 版本不允许语法,则重组将失败,在这种情况下,您必须请 DBA 为您完成工作,或者成为用户db2inst1 和 运行 重组。

当重组完成且没有错误时,重试 t运行cate table。