以下是自己的亲身测试记录 --第1步 创建测试表
create table TEST (A VARCHAR2(10),B VARCHAR2(10),C VARCHAR2(10),D VARCHAR2(10)); --第2步 查询出表的id,注意:owner和object_name的值要大写
--DBA用户使用
select object_id from all_objects where owner=‘CHINAJFK‘ and object_name=‘TEST‘;--本例结果为52206
--表归属用户可以使用
select object_id from obj where object_name=‘TEST‘;--本例结果为52206 --第3步 通过id查出该表所有字段的顺序
select obj#,col#,name from sys.col$ where obj#=52206 order by col#; --第4步 更新字段顺序,需要sys用户或是System用户 as sysdba登录,或是其他拥有sysdba权限的用户,但是这里的操作一定要小心。
--(1)更新目标字段的col#
update sys.col$ set col#=4 where obj#=52206 and name=‘A‘;
--(2)更新受影响字段的col#,自己根据情况自己组织语句
update sys.col$ set col#=col#-1 where obj#=52206 and name!=‘A‘;
--(3)提交
commit; --第5步 重启Oralce服务 --第6部 检查是否生效
select obj#,col#,name from sys.col$ where obj#=52206 order by col#;
select * from chinajfk.test;
Oracle 修改字段顺序的两种方法
标签:sysdba oralce 通过 family class system varchar2 and 操作