易截截图软件、单文件、免安装、纯绿色、仅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函数大全

SQL中的单记录函数
1.ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
        A         A      ZERO     ......

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

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

oracle over()函数技术详解

 原文地址:http://hi.baidu.com/zengjl/blog/item/c06c8edeb2c7e45cccbf1aca.html/cmtid/305a850ea57b09ec37d1226c
1.查询表数据
SQL> select deptno,ename,sal
   2   from emp
   3   order by deptno;
DEPTNO ENAME          SAL ......

oracle数据库学习(ZT)

 oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。 
一、定位 
oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号