在DB2数据库执行如下reorg table语句时报错:

db2 reorg table table_name;

看似很简单的一个语句,但执行时报错:

SQL2220w The compression directory was not built for one or more data objects. SQLSTATE=01H52

处理步骤:

(1)、检查表是否可访问

select * from table_name;

如上语句可执行成功,表明表的访问没有问题。

(2)、鉴于基于这张表,创建了一个视图。为避免视图对reorg table的影响,将视图DROP。

但执行reorg table语句时,仍然报错。

(3)、因为表是当天刚建的,且做了load null的操作,可能会对表的状态有影响。

将表删除,然后重建表、重建视图。再次执行reorg table语句成功。

db2数据库在使用时,表的状态非常敏感,经常不知道因为某一步操作,导致表状态异常,而作为开发人员,通常没有有效的手段去解决。可能DROP TABLE只能作为最后一个杀手锏。但如果表中的数据没有备份,而表又无法正常访问,这个方法就无使用,只能求救于DBA。

本站所有内容均为原创,本站保留所有权利。在保留原始来源链接的情况下,允许非商业用途的转载。拒绝一切商业性转载。

picture loss