调整oracle相应表的字段顺序

一、方法一:修改基表(不推荐)

1、以sys用户身份登录

2、查出要更改顺序的表的ID

SELECT OBJECT_ID FROM ALL_OBJECTS WHERE OWNER='CMH' AND OBJECT_NAME='ATEST';
--用户CMH
--修改的表ATEST

3、根据ID去查询该表中的字段以及字段顺序

SELECT OBJ#,COL#,NAME FROM SYS.COL$ WHERE OBJ#=114408;

4、利用UPDATE去调整字段顺序

UPDATE SYS.COL# SET COL#=2 WHERE NAME='DAY_CODE';
UPDATE SYS.COL# SET COL#=1 WHERE NAME='BUSS_MONTH';
--将DAY_CODE(原是第一个位置)和BUSS_MONTH(原是第二个位置)调整顺序

注意:要以管理员身份登录才能修改SYS.COL#表,否则会出现权限不足。且不推荐这种方法,因为可能会造成系统故障。

 

二、方法二:重新建表(不推荐)

RENAME ATEST TO BTEST;
CREATE TABLE ATEST AS SELECT BUSS_MONTH,DAY_CODE FROM BTEST;
--查询时将字段顺序调换,再修改索引、约束修改,因为这样建表并不会建立索引及约束

 

三、方法三:使用12C版本

--在12C里面可以根据invisible、visible特性来修改顺序
ALTER TABLE ATEST MODIFY(DAY_CODE,INVISIBLE)
--这个语句可以将DAY_CODE设置为不可见
ALTER TABLE ATEST MODIFY(DAY_CODE,VISIBLE)
----这个语句可以将DAY_CODE设置为可见,且位置放在最后

 

posted @ 2021-12-07 13:42  微风徐徐$  阅读(2216)  评论(0编辑  收藏  举报