应用数据能不能删除 Oracle中如何快速的卸载和加载数据
Oracle中如何快速的卸载和加载数据
前几天有个朋友在MSN上问 如何能更快速的从数据库中卸载和加载数据 他原来是用sql查询spool出来 效率很低
这让我想起DCBA的一个工具ociuldr 这个工具是用C写成的 通过OCI和数据库交互 方便而且效率很高 通过ociuldr转储的数据 可以很容易用sqlldr加载入数据库 两者结合使用 效果非凡 我简单测试了一下 转储很简单
D:OraDocOracleToolsociuldr>ociuldr user=scott/tiger@eygle query= select * from emp field=# record= x a file=emp txtrows exported at : : rows exported at : : output file emp txt closed at rows
创建好测试表
D:OraDocOracleToolsociuldr>sqlplus scott/tiger@eygleSQL*Plus: Release Production on 星期二 月 : :
Copyright (c) Oracle All rights reserved
连接到:Oracle i Enterprise Edition Release ProductionWith the Partitioning optionJServer Release Production
SQL> create table empt as select * from emp where = ;
表已创建
编写简单的控制文件 通过sqlldr轻松加载入数据库

D:OraDocOracleToolsociuldr>cat a ctlLOAD DATAINFILE emp txt INTO TABLE emptAPPENDFIELDS TERMINATED BY # TRAILING NULLCOLS(EMPNO ENAME CHAR JOB CHAR MGR HIREDATE DATE SAL M DEPTNO)
D:OraDocOracleToolsociuldr>sqlldr scott/tiger@eygle control=a ctl
SQL*Loader: Release Production on 星期二 月 : :
Copyright (c) Oracle All rights reserved
达到提交点 逻辑记录计数
D:OraDocOracleToolsociuldr>sqlplus scott/tiger@eygle
SQL*Plus: Release Production on 星期二 月 : :
Copyright (c) Oracle All rights reserved
连接到:Oracle i Enterprise Edition Release ProductionWith the Partitioning optionJServer Release Production
SQL> set linesize SQL> select * from empt;
EMPNO ENAME JOB MGR HIREDATE SAL M DEPTNO SMITH CLERK 月 ALLEN SALESMAN 月 WARD SALESMAN 月 JONES MANAGER 月 MARTIN SALESMAN 月 BLAKE MANAGER 月 CLARK MANAGER 月 SCOTT ANALYST 月 KING PRESIDENT 月 TURNER SALESMAN 月 ADAMS CLERK 月 JAMES CLERK 月 FORD ANALYST 月 MILLER CLERK 月
已选择 行
SQL>
dcba说将在下一版增加自动控制文件生成的功能 那时候这个工具将会更加方便了
lishixinzhi/Article/program/Oracle/201311/18783