执行 ALTER COLUMN 后无法访问 IBM Cloud table 上的 Db2 Lite 计划

Db2 Lite plan on the IBM Cloud table not accessible after ALTER COLUMN performed

我必须在 Db2 on IBM Cloud (DashDb) 中对 table 执行 ALTER。此后,我尝试

ALTER TABLE REFT_BRAND_DIM ALTER COLUMN BRAND_CD SET NOT NULL;

现在 table 无法访问。例如:

SELECT * FROM RQG40283.REFT_BRAND_DIM

错误信息
table“RQG40283.REFT_BRAND_DIM”上的原因代码“7”不允许操作。SQLCODE=-668,SQLSTATE=57016,DRIVER=4.26.14

这个错误是 table 处于重组挂起状态。这可能发生在包含 REORG 推荐操作的 ALTER TABLE 语句之后。但是,REORG TABLE RQG40283.REFT_BRAND_DIMREORG TABLESPACE rqg40283space1 似乎都没有被识别。

如果有人能提供任何帮助,我将不胜感激。

在我看来你需要删除 table。您说您使用的是 Db2 Lite 计划。在那种情况下,您没有任何管理权限,并且该服务仅用于一些简单的测试。因此,重新创建 table.

应该很容易

删除并重新创建 table 是一个明显的解决方法。您可以通过使用新 table-name 并从旧 table 复制数据或使用临时 table.

来保留数据

在我的 Db2-cloud lite 计划中,它允许我在进行 table 更改后重组 table。

示例:

call sysproc.admin_cmd('REORG TABLE REFT_BRAND_DIM' );

此外,如果有本地 Db2 运行时客户端,或 Db2 fat-client,其版本+修复包 完全 与您的 Db2-lite 的版本+修复包相匹配例如,那么 CLP reorg 也适用于 Db2-lite 计划,目前是这样的:

db2 connect to bludb user .... using ...

db2 reorg table reft_brand_dim

命令行 仅在 不需要在 Db2-lite 计划上绑定或重新绑定 CLI 包时工作,因为 Db2-lite 未授予此类权利计划。