Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选

首页 / 数据库 / MySQL / 修改Oracle数据库表中的字段的顺序

都说写程序与数据库表字段的顺序没有关系,可是做过实际的项目之后才知道,对于操作数据库的人来说,数据库表的字段顺序可能是很繁琐的,比如需要往表中增加字段,但不希望把字段放到表的最后。通过用过Oracle的人都知道,要想在ORACLE中更改表的列名和顺序可是一件很烦琐的事,下面给大家提供一种简单的方法。用SYSTEM登录sqlplus进行操作,因为这需要dba第一步,从数据字典视图查询出表的idSQL> select object_id from all_objects where owner="SCOTT" and object_name="T1";OBJECT_ID
----------
6067第二步,通过id查出该表中所有字段的顺序SQL> select obj#,col#,name from sys.col$ where obj#=6067;OBJ#  COL#  NAME
--------------------
6067   1    ID
6067   2    NAME第三步,更新字段的顺序
SQL> update sys.col$ set name="NEW_ID" ,col#=3 where obj#=6067 and name="ID";1 row updated.SQL> update sys.col$ set name="MY_NAME",col#=1 where obj#=6067 and name="NAME";1 row updated.SQL> update sys.col$ set col#=2 where obj#=6067 and col#=3;1 row updated.SQL> commit;完成.SQL> select * from scott.t1;ID NAME
---------- --------------------
3 cheng
2 yong
1 xin
2 gototop
1 topcio
2 yongxin
1 cyx7 rows selected.SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.SQL> startup
ORACLE instance started.Total System Global Area 128159368 bytes
Fixed Size 732808 bytes
Variable Size 117440512 bytes
Database Buffers 8388608 bytes
Redo Buffers 1597440 bytes
Database mounted.
Database opened.SQL> select * from scott.t1;MY_NAME NEW_ID
-------------------- ----------
cheng 3
yong 2
xin 1
gototop 2
topcio 1
yongxin 2
cyx 17 rows selected.第四步、 重启数据库服务。由于数据字典是在数据库启动时加载到SQL中的,所以修改了它之后,如果使用“SELECT * FROM SCOTT.TEST; ”,会发现好像并没有修改。因此,修改完成之后,还需要重启数据库服务。SQL>SHUTDOWNSQL>STARTUP
这时,再查看,就会发现修改已经成功。到此为止我们已经把SCOTT.T1表中的列名和顺序都给改了,如果你只想改变顺序而不想改变列名,只需再进行UPDATE就可以了,之所以不能一次完成是因为SYS.COL$中COL#,NAME都是UNIQUE的。这种方法虽然存在一定风险,但对于特别大的表效果是很明显的,而用一般的方法将需要更多的存储空间、回滚段和时间开销。Oracle数据库备份与恢复Oracle数据备份与恢复的配置相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数