修改Oracle 字段顺序

Oracle,默认情况下,新增的字段都是排在最后的,不能像MySQL 那样在指定位置插入字段,

对于数据量较小的表可以重新建表, 但数据量较大的表就无法这样操作了

下面以WEB_USER 表为例

现有5个字段

select * from WEB_USER;

要新增一个Class 字段 排在Name 字段后面

查询SYS.ALL_OBJECTS 获取OBJECT_ID

select * from SYS.ALL_OBJECTS where OWNER=‘BS’ and OBJECT_NAME=‘WEB_USER’;

利用OBJEC_ID查询字段信息

select * from SYS.COL$ where OBJ#=75650;

修改字段属性

update SYS.COL$ set COL#=3 where OBJ#=75650 and NAME=‘CLASS’; CLASS 字段的 COL# 设置为3,

update SYS.COL$ set COL#=6 where OBJ#=75650 and NAME=‘AGE’; 并将 AGE 字段的 COL# 设置为6

Commit; 更新完之后提交

修改完成后并不会立即生效, 还需要重启Oracle 服务

重启Oracle服务之后

对于包含大量数据的表修改字段顺序需要谨慎操作

修改Oracle 字段顺序

转载请注明来源:幽幽过客_{修改Oracle 字段顺序}