请高手帮忙!用Quest Center 作Tune SQL报错!
Explain Failed - 16:31:05
[IBM][CLI Driver][DB2/AIX64] SQL0668N 由于表 "TBSPACEID=22.TABLEID=3351" 上的原因代码 "1",所以不允许操作。 SQLSTATE=57016
这个表是个分区表,
属性有
LOCKSIZE ROW
APPEND OFF
NOT VOLATILE
其他的属性都应该是默认属性了。
请问是什么属性有问题?怎么解决?
谢谢!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
表的DDL:
CREATE TABLE T_t
( id char(1) )
DATA CAPTURE NONE
IN SINGLENODETBS;
ALTER TABLE T_t
LOCKSIZE ROW
APPEND OFF
NOT VOLATILE;
应该不是外键这样的问题,因为我的表是没有建主键,也没有建外键的。
我通过查看该表的DDL语句,只有
LOCKSIZE ROW
APPEND OFF
NOT VOLATILE
。其他的都没有,应该是都是默认属性。
另外我仓库中所有的表都不可以作Tune SQL了,包括最简单的select *。
我随便Create Table 一个表,然后做Tune SQL也不可以。
不知道什么原因?是不是有什么其他的参数?亦或数据库级的参数?
因为以前我是可以做这样操作,仓库重建后就不行了,不知道是什么原因?谢谢!
CHECK PENDING是表的状态,而非表空间的状态!
你的表应该处于check pending状态,该表上应该定义有外键或检查限制,而且有数据违反限制,所以你执行上述命令后表仍处于check pending状态!
解决方法一个是建立例外表,检查父子表,将违反限制的数据放入例外表中
另一个方法是不检查限制,解除状态,但可能存在违反限制的数据,如:
复制代码
我看了所有的表空间都是下面这样子的。
Tablespace ID = 7
Name = XXXXXXXXXX
Type = Database managed space
Contents = Any data
State = 0x0000
Detailed explanation:
Normal
你吧所有节点表空间的状态贴出来啊!
db2=>;list tablespace
set integrity for t IMMEDIATE CHECKED
报错:
[IBM][CLI Driver][DB2/AIX64] SQL3600N 因为表 "XJDSS.BS_CC_FEESET" 是用户维护的具体查询表或未处于检查暂挂状态,所以 SET INTEGRITY 语句的 IMMEDIATE CHECKED 选项无效。 SQLSTATE=5102
应该说明他不是“检查挂起”状态。
怎么操作?谢谢,给个例子?嘿嘿
是不是做Load操作了?表处于“检查暂挂”状态,需要运行set integrity命令解除。