当前位置:Gxlcms > 数据库问题 > Oracle 修改字段顺序的两种方法

Oracle 修改字段顺序的两种方法

时间:2021-07-01 10:21:17 帮助过:29人阅读

--(1)备份目标表数据 create table 临时表 as select * from 目标表; --(2)drop 目标表 drop table 目标表; --(3)再重新按照要求的字段顺序建表; create table 临时表 (col1,................coln); --(4)之后用select将数据从临时表导回。   此外,还可以通过修改sys的数据字典来实现。
以下是自己的亲身测试记录
--第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   操作   

人气教程排行