一、方法一:修改基表(不推薦)
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設置為可見,且位置放在最后