易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle中直接修改表列的名称和顺序

导入数据得时候,遇到一个问题,想把列名顺序改变一下。在网上搜索到这篇文章,没去试验。贴上来,以后有机会试验下。
(http://www.im80hou.com/html/oracle/2009/0710/712.html)
 
按照关系数据库的理论,行与列都是无序的,但在实际应用中有时需要确定列的顺序。但在Oracle中,一旦表定义好,再想修改列的顺序可不太容易
  
1.以internal用户名登录Oracle数据库,并创建一测试表。
SQL>CREATE TABLE SCOTT.TEST AS SELECT EMPNO,
            ENAME from SCOTT.EMP;
            SQL>DESC SCOTT.TEST
            Name Type Nullable Default Comments
            ------- ------------ -------
            EMPNO NUMBER(4) Y
            ENAME VARCHAR2(10) Y
下面我们要把SCOTT.TEST表中EMPNO和ENAME两列调换顺序,并把ENAME列更名为EMP_NAME,EMPNO改为EMP_NO。
2.查询表中列的实际存储位置或表。
SQL>SET LONG 9999,由于TEXT列是LONG类型,只有“SET”之后才能完全显示。
SQL>SELECT TEXT from ALL_VIEWS WHERE VIEW_NAME = ‘USER_TAB_COLUMNS’;
数据字典视图USER_TAB_COLUMNS中存储有表列的定义信息,从该语句的查询结果可以看出,列定义信息是存储在表SYS.COL$中的,即如果修改表中列的定义,应该在SYS.COL$表中修改。
3.从数据字典视图ALL_OBJECTS中查找对象SCOTT.TEST对象ID。
SQL> SELECT * from ALL_OBJECTS WHERE OWNER =‘SCOTT’ AND OBJECT_NAME=‘TEST’;
4.根据SCOTT.TEST对象的ID,从SYS.COL$检索出表中列的定义信息。
SQL> SELECT OBJ#,COL#,NAME from SYS.COL$ WHERE OBJ# =13888;
            OBJ# COL# NAME
            ---------- ---------- -------
            13888 1 EMPNO
&n


相关文档:

ORACLE的三个配置文件介绍

概述
在oracle安装目录$HOME/network/admin下,,经常看到sqlnet.ora tnsnames.ora listener.ora这三个文件,除了tnsnames.ora,其他两个文件详细的用途很多人都不太了解。
sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数.
tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,就像系 ......

Oracle undo 回滚段管理


在开始之前,我们先来思考几个问题?
1.  ora-01555错误的是怎么产生的?有什么办法解决?
      该问题,参考我的Blog: Oracle ORA-01555快照过旧
  http://blog.csdn.net/tianlesoftware/archive/2009/10/31/4745898.aspx
2.  回滚段(回滚 ......

ORACLE UNDO 《深入浅出ORACLE第七章》

如果说Redo是用来保证在故障时事务可以被恢复,那么Undo则是用来保证事务可以被回退或者撤销。
在修改操作中,对于回退段的操作存在多处,在事务开始时,首先需要在回滚段表空间获得一个事务槽,分配空间,然后创建前镜像,此后事务的修改才能进行,Oracle必须以此来保证事务是可以回退的。
如果用户提交了事务,Oracle会 ......

oracle数据库学习(ZT)

 oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。 
一、定位 
oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle ......

oracle函数详解

1、SQL 语句基础
下面给出SQL语句的基本介绍。
1.1、SQL语句所用符号
操作符 用途 例子
+ - 表示正数或负数,正数可省去 + -1234.56
+ 将两个数或表达式进行相加 A=c+b
- 将两个数或表达式进行相减 34-12
* 将两个数或表达式进行相乘 12*34
/ 除以一个数或表达式 18*11
NULL 空值判断 Where name is null; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号