ORA-12986

来源:互联网 发布:超级基因优化液百科 编辑:程序博客网 时间:2024/06/08 14:37

今天在删除一个大表的列,意外被DBA重启DB后,再执行查询时,就报了ORA-12986这个错误,先来一起了解下这个错误:

ORA-12986: columns in partially dropped state. Submit ALTER TABLE DROP COLUMNS CONTINUE
Cause: An attempt was made to access a table with columns in partially dropped state (i.e., drop column operation was interrupted).
Action: Submit ALTER TABLE DROP COLUMNS CONTINUE to complete the drop column operation before accessing the table.
可以看到导致这个错误的原因是因为你正在删除列,但是删除到一半时,进程被意外终止了,导致表处在部分删除状态,所以报了咋么个错误,你要做的就是继续删除,看下下面的例子:

1.将列置为unused

ALTER TABLE test1 SET UNUSED COLUMN Tablespace_name;

2.删除unused列

ALTER TABLE test1 DROP UNUSED COLUMN CHECKPOINT 5;

在未执行完毕前,用 shutdown abort强制关闭数据库(如果用shutdown immediate就看不到效果,它会等到执行完毕才会关闭数据库)

3.重新启动数据库,查看test1表,报错


4.继续删除未删完的列

ALTER TABLE test1 DROP COLUMNS continue

5.执行完毕后再次查询test1表,就OK了