Oracle中如何快速的卸载和加载数据?
2007-05-13 12:28:55 来源:WEB开发网前几天有个朋友在MSN上问,如何能更快速的从数据库中卸载和加载数据,他原来是用sql查询spool出来,效率很低。
这让我想起DCBA的一个工具ociuldr,这个工具是用C写成的,通过OCI和数据库交互,方便而且效率很高。
通过ociuldr转储的数据,可以很容易用sqlldr加载入数据库,两者结合使用,效果非凡。
我简单测试了一下,转储很简单:
D:OraDocOracleToolsociuldr>ociuldr user=scott/tiger@eygle2 query="select * from emp" field=# record=0x0a file=emp.txt
0 rows exported at 2007-02-27 15:47:48
14 rows exported at 2007-02-27 15:47:48
output file emp.txt closed at 14 rows.
创建好测试表:
D:OraDocOracleToolsociuldr>sqlplus scott/tiger@eygle2
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 2月 27 15:53:40 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
SQL> create table empt as select * from emp where 1=0;
表已创建。
编写简单的控制文件,通过sqlldr轻松加载入数据库:
D:OraDocOracleToolsociuldr>cat a.ctl
LOAD DATA
INFILE 'emp.txt'
INTO TABLE empt
APPEND
FIELDS TERMINATED BY '#' TRAILING NULLCOLS
(
EMPNO ,
ENAME CHAR ,
JOB CHAR ,
MGR ,
HIREDATE DATE ,
SAL ,
COMM ,
DEPTNO
)
D:OraDocOracleToolsociuldr>sqlldr scott/tiger@eygle2 control=a.ctl
SQL*Loader: Release 10.2.0.1.0 - Production on 星期二 2月 27 16:01:24 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
达到提交点 - 逻辑记录计数 14
D:OraDocOracleToolsociuldr>sqlplus scott/tiger@eygle2
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 2月 27 16:01:37 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
SQL> set linesize 120
SQL> select * from empt;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
已选择14行。
SQL>
dcba说将在下一版增加自动控制文件生成的功能,那时候这个工具将会更加方便了。
- ››oracle 恢复误删除的表和误更新的表
- ››快速制作人物与树木的双重曝光效果
- ››如何检查oracle的归档空间是否满了
- ››如何在浏览器中打开PDF文件并实现预览的思路与代码...
- ››如何改Win7系统我的文档保存位置
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››如何让ios app支持32位和64位
- ››如何删除Windows 8系统未知的账户
- ››如何提高win7系统的响应速度?
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
更多精彩
赞助商链接