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!

此条目发表在错误警告分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注