在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。