1、DB2 数据库完整性暂挂 SQL0668N 的错误案例2010-02-07 19:28:06 来源: 作者: 【大 中 小】 浏览:35 次 评论:0 条关键字:DB2 临时表 DB2 优化器性能比较 DB2 数据库优化 DB 连接方式导出表结构本文详细介绍 DB2 数据库完整性暂挂 SQL0668N 的错误案例报错,错误号为:SQL0668N详细说明:SQL0668N 不允许对表 “ 执行操作, 原因码。解释:限制对表 “ 的访问。原因基于下列原因码原因码:1 该表处于“设置完整性暂挂无访问”状态。未强制表的完整性并且表的内容可能是无效的。如果从属表处于“设置完整性暂挂无访问”状态,则对于未
2、处于“设置完整性暂挂无访问”状态的父表或基础表执行的操作也可能会接收到此错误。2 表处于“无数据移动”状态。当处于此状态时,禁止导致数据移动的操作。数据移动操作包括 REDISTRIBUTE、数据库分区键的更新、多维集群键的更新、范围集群键的更新、数据分区键的更新和 REORG TABLE。3 表处于“装入暂挂”状态。对此表的先前的 LOAD 尝试失败。在重新启动或终止 LOAD 操作之前不允许对表进行访问。4 表处于“读访问”状态。此状态可以在联机装入(LOAD)处理(带有 READ ACCESS 选项的 LOAD insert)期间发生,或在联机装入(LOAD)操作后发生,除了在使用 SE
3、T INTEGRITY语句在表的新追加的部分验证所有约束之前。不允许对此表的更新活动。5 表处于“正在装入”状态。LOAD 实用程序当前对此表进行操作,直到 LOAD完成才允许访问。6 不能在 ESE 中刷新引用昵称的具体化查询表。7 表处于“REORG 暂挂”状态。在执行包含 REORG 建议的操作的 alter TABLE 语句后,可能会发生这种情况。8 表处于“改变暂挂”状态。当在包含 REORG 建议的操作的 alter TABLE 语句所在工作单元中使用该表时,就可能会发生这种情况。用户响应:1 对表 “ 执行带有 IMMEDIATE CHECKED 选项的SETINTEGRITY
4、语句,以使表脱离“设置完整性暂挂无访问” 状态。对于用户维护的具体化查询表,执行带有 IMMEDIATE UNCHECKED 选项的语句,而不是带 IMMEDIATECHECKED 选项。2 对表 “的从属立即具体化查询表和登台表执行 REFRESH TABLE 语句。可以通过先前的 LOAD insert 操作根据 “ 的追加数据以及通过先前带有 ATTACH 子句的 alter TABLE 语句根据 “ 的连接数据以增量方式维护这些从属立即具体化查询表 和登台表的内容。3 通过分别发出带有 RESTART 或 TERMINATER 选项的 LOAD 来重新启动或终止先前失败的对此表的 LO
5、AD 操作。4 发出 LOAD QUERY命令以检查该表是否正在装入。如果是,则一直等到 LOAD 实用程序完成,或如有必要,重新启动或终止先前失败的“装入”操作。如果当前未在进行 LOAD,则发出带有 IMMEDIATE CHECKED 选项的 SET INTEGRITY 语句以验证表的新装入部分中的约束。5 一直等到当前 LOAD 操作完成。可用使用 LOAD QUERY 命令来监视装入的进度。6 使用 MAINTAIN BY USER选项定义具体化查询表。然后,使用带有子查询的 insert 语句填充具体化查询表。7 使用 REORG TABLE 命令重组表(注意,不允许对处于“REORG 暂挂”状态的表执行 INPLACE REORG TABLE)。8 完成该工作单元,然后重新发出该命令。sqlcode : -668sqlstate : 57007-解决方案:在服务器端 CLP 执行下列命令即可:SET INTEGRITY FOR DB2ADMIN.ALARMTARGET IMMEDIATE CHECKED说明:如果表处于“设置完整性暂挂“的状态,那么就需要尽快处理,否则该表不能进行 select、update、delete 等操作