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!
评论