oracle列删除
1.直接删除列
##如下方式可以直接删除某个表上不需要的列,当然我们在删除过程中尽量的带上checkpoint选项,尽力避免过多的undo征用
alter table t1 drop column name checkpoint 2;;
##如果在删除过程中数据库掉电,对应的表变成了invalid,使用以下命令继续删除
alter table t1 drop column name continue;
2.设置unused,业务空闲再实际删除
##这种方式,是极力推荐的,避免了业务高峰期对生产业务的影响,也能满足对应的业务需求
正常业务中,如果我们想要删除某个表上的大列的时候尽量避免alter table t1 drop column name;而是尽量采用set unused;然后再业务空闲的时候再次删除
SQL> alter table TABELA_COL_INV set unused(col3);
在空闲状态下执行一下操作,尽量添加checkpoint,尽可能的避免一次写入多量undo,这里的2代表每删除2行数据做一次commit提交
SQL> ALTER TABLE TABELA_COL_INV DROP UNUSED COLUMNS checkpoint 2;