Oracle Faq(如何在ORACLE中更改表的列名和顺序 )

2016-02-19 12:09 9 1 收藏

下面是个Oracle Faq(如何在ORACLE中更改表的列名和顺序 )教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】


如需转载,请注明出处!
用过ORACLE的人都知道,要想在ORACLE中更改表的列名和顺序可是一件很烦琐的事,下面给大家提供一种简单的方法。

SQL select object_id from all_objects where owner='SCOTT' and object_name='T1';

OBJECT_ID
----------
6067
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;

Commit complete.

SQL select * from scott.t1;

ID NAME
---------- --------------------
3 cheng
2 yong
1 xin
2 gototop
1 topcio
2 yongxin
1 cyx

7 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 1

7 rows selected.

到此为止我们已经把SCOTT.T1表中的列名和顺序都给该了,如果你只想改变顺序而不想改变列名,只需再进行UPDATE就可以了,之所以不能一次完成是因为SYS.COL$中COL#,NAME都是UNIQUE的。

这种方法虽然存在一定风险,但对于特别大的表效果是很明显的,而用一般的方法将需要更多的存储空间、回滚段和时间开销。 

来源:http://www.tulaoshi.com/n/20160219/1600002.html

延伸阅读
一、设置初始化参数 job_queue_processes sql alter system set job_queue_processes=n;(n0) job_queue_processes最大值为1000 查看job queue 后台进程 sqlselect name,description from v$bgprocess; 二、dbms_job package 用法介绍 包含以下子过程: Broken()过程。 change()过程。 ...
标签: SQLServer
  从Oracle10g开始,Oracle极大的增强了OEM工具,并通过服务器端进行EM工具全面展现。 在10g中,客户端可以不必安装任何Oracle客户端工具,仅凭浏览器就可以调用强大的EM工具。 在Server端,可以通过如下命令启动EM工具控制台: emctl start dbconsole 以下是启动过程: [oracle@danaly ~]$ emctl start dbconsole TZ set to PRC Oracle ...
今天上班犯了一个严重的错误:把我们系统所使用的Oracle数据库中的数据给改掉了!当发现自己改错时,顿时冒了一身冷汗。不过转念一想,我们不是定期作了数据库备份的嘛,适当的恢复一下,应该不会出现太大的问题吧,因为我只是错误的使用了一个update语句。 问题是这样的: 我们给系统创建了两个用户:com和comtest。前者存放的...
宝宝长牙的时间和顺序 乳牙萌出的时间和顺序 1、中切牙:下颌6个月;上颌7个半月 2、侧切牙:下颌7个月;上颌9个月 3、第一乳磨牙:下颌12个月;上颌14个月 4、犬牙:下颌16个月;上颌18个月 5、第二乳磨牙:下颌20个月;上颌2岁 有的孩子会有个别牙齿的萌出顺序颠倒,但最终并不影响牙齿的排列,无需处理。 宝宝牙...
正在看的ORACLE教程是:Oracle 数据表分区的策略。本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义, 本文的工作在Oracle8.1.6下实现。 Oracle虽然是一个大型的DBMS,但如果不对记录比较多的表进行处理,仍然发挥不了Oracle管理大型数据...

经验教程

489

收藏

40
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部