【问题标题】:truncate table. Error Msg = sqlcode -668 sqlerrmc=7截断表。错误消息 = sqlcode -668 sqlerrmc=7
【发布时间】:2021-12-09 10:35:23
【问题描述】:

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

TRUNCATE table departments immediate

但我收到了这个错误:

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

(当我在本地的 DBEVAER(外部频道)上运行它时它正在发生,它运行良好。

帮助别人?

【问题讨论】:

  • ORA-02000 不是 Db2 错误代码。

标签: db2 dbeaver


【解决方案1】:

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

SQL0668N 由于原因码“”而不允许操作 桌子 “”。

原因码 7 表示:

表处于重组挂起状态。这可能发生在 包含 REORG 推荐操作的 ALTER TABLE 语句。

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

reorg table db2inst1.departments 

如果您具有对 Db2 的命令行访问权限,或者可以从 DBeaver call admin_cmd ('reorg table db2inst1.departments') 等 jdbc 应用程序访问。

但是,如果您的帐户缺少权限,或者您的 Db2 服务器版本不允许该语法,那么重组将失败,在这种情况下,您必须要求 DBA 为您完成工作,或者成为用户 @987654323 @ 并运行重组。

当重组完成且没有错误时,重试截断表。

【讨论】:

  • 是否有“取消”重组表的查询?好像卡在reorg表查询(我之前运行的那个)上,因此无法完成truncate的操作。
  • 无法通过在线(就地)重组使表脱离重组挂起状态。必须使用离线(经典)重组。 call admin_cmd ('reorg table db2inst1.departments').
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
相关资源
最近更新 更多