郎行天下

要么就别做,要做就做好。

ORA-39726:不支持对压缩表执行添加/删除列操作

对 Oracle 数据库中的表进行添加或者删除列等操作时,有时会报如下错误:

ORA-39726:不支持对压缩表执行添加/删除列操作

究其原因,是因为把表压缩了,压缩后的表不能进行列的添加和删除等操作。

解决方法:


  • 把列设置为 UNUSED 再删除,如果还报错,直接把表解压缩再删除。

  • 直接把表解压缩,然后直接删除列。

  • 直接把表解压缩,把列设置为 UNUSED 再删除。


要删除列时,将要删除的列设置为 UNUSED COLUMN 再进行删除,语句如下:
alter table 表名 set unused column 列名;

alter table 表名 drop unused columns;
但有时候还是报同样的错误,无法删除 UNUSED COLUMN,这时,可以试试,直接把该表解压缩,然后直接删除列即可,解压缩表语句如下:

alter table 表名 nocompress;

如果解压缩后删除列还不好用,可以用下面语句解压缩表:

alter table 表名 move nocompress;

直接删除列,应该能直接删除,如果还报错,参考解决方法第 3 条。

Good Luck!

评论

©郎行天下 | Powered by LOFTER