如需转载,请注明出处!
用过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的。

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

Oracle Faq(如何在ORACLE中更改表的列名和顺序 )的更多相关文章

  1. ios – 蓝牙LE,scanForPeripheralsWithServices在后台增加速度

    我在iPhone5S上使用蓝牙LE,我做了以下工作:>我有一个蓝牙外设,我配置它在所有三个蓝牙广告频道(37,38和39)上宣布每20秒.>我已经配置了我的应用程序与UIBacgroundModes=蓝牙中央在Info.plist>我已经启动了一个scanForperipheralsWithServices,如下所示码:目前的状态是:>在前台模式下,当我启动外围设备时(一秒钟内),应用程序会迅速收

  2. IOS蓝牙LE:无法使用存储的配对数据进行连接

    花了几个小时搜索网路,没有运气这里是我的问题:>如何使用我手机中存储的配对数据将iPhone应用程序从我的iPhone应用程序连接到蓝牙LE设备?我错过了什么吗?>这可能不是IOS的问题,因为如果配对数据存在于连接设备的手机中,会自动使用?更新2013-10-27我已经发现,如果配对存在,那么在发现特性之后,您无法通过配对认证来读取受保护的特性.没有保护特性的问题!

  3. ftp类(example.php)

    flush();$ftp_ini_datei=$argv[1];require('./ftp_class.php');require($ftp_ini_datei);echo"\nCronjobstarted:";echodate("d.m.Y-H:i:s");echo"\n";$newftp=newmyftp;if(!$anonymous){$result=$newftp->connect($host,$user,$password);}else{$result=$newftp->connect($ho

  4. 如何防止IE缓存jsp文件

    1,使用java提供的方法,在jsp或者servlet中都可以2,使用HTML标记,如下面:

  5. Apache2的httpd.conf翻译

    ##这是Apache服务器主要配置文件。#参见以取得关于这些指令的详细信息##不要只是简单的阅读这些指令信息而不去理解它。#这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。

  6. 我的群发邮件程序

    phpinclude"connect.inc.php";if{$query="selectname,emailfromuser";$res=mysql_query;$row=mysql_fetch_array;while{mail($row['email'],$subject,$row['name'].":n".$text."n中国广告网,和你共成长。>群发邮件

  7. Oracle Faq(Oracle的字符集问题)

    1)createdatabasecharactersetZHS16GBKnationalcharactersetZHS16GBK2)环境变量:NLS_LANG=american_america.ZHS16GBK最好exportNL2004-10-20_FORMAT='YYYY-MM-DDHH24:MI:SS'指明日期格式;3)如果建库时指定了props$中characterset肯定就是ZHSS16GBK了:NLS_CHARACTERSETZHS16GBKNLS_NCHAR_CHARACTERSETZHS

  8. 一个显示天气预报的程序

    刚开始学PHP,先编写了一个程序,放在自己的主页上,可以显示天气预报,当然还很不完善,希望大家给提意见。这是有规律可寻的,先判断时间,一般比预报时间晚一个小时的话,肯定可以获取最新的预报数据了。不过现在我没有考虑那么多,以后再说吧!

  9. html中select语句读取mysql表中内容

  10. 用PHP连接Oracle数据库

    通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。>以上代码使用TNSNAME定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部