急急急!!! oracle中怎样在特定的列后添加新的列

比如:A表中有 a,b,c,d列,现在要在b列后添加e列。表的结构变为 a,b,e,c,d。并且a,b,c,d列中的数据保留

alter table table_name add (e number(4));
oracle中不能在某列前后固定插入,只会在最后列中追加
插入新列不影响前面的数据
其实列的顺序是无所谓的,你查找的时候select a,b,e,c,d from A 不就可以了么
如果你非要这样那只能复制新的A表到B表,然后删除掉A表,并重命名B表,如:
create table B as select a,b,e,c,d from A
drop table A
alter table B rename A
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-01
Oracle只能在原有基础上增加、删除列。而且你需要的这个结构没有必要啊,如果真的需要这种排列形式,只需要在查询时写好字段顺序就可以了。追问

我这个表有84列。我想把新添加的这列跟相关的列放到一起,这样比较好找。

第2个回答  2018-05-14
我也不知道怎么在指定位置添加列,但是你说无所谓这句话是错的,如果你做ETL顺序不一样是找不到这个列的,做数据同步的时候,还有就是做装载数据等操作,因为你这里是数据文件,所有你装载的时候顺序必须一致,否则装不进去
第3个回答  2011-06-01
alter table A add column e after b追问

oracle里没有这种写法吧