数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle中如何快速的卸载和加载数据


发布日期:2023年07月20日
 
Oracle中如何快速的卸载和加载数据

前几天有个朋友在MSN上问如何能更快速的从数据库中卸载和加载数据他原来是用sql查询spool出来效率很低

这让我想起DCBA的一个工具ociuldr这个工具是用C写成的通过OCI和数据库交互方便而且效率很高

通过ociuldr转储的数据可以很容易用sqlldr加载入数据库两者结合使用效果非凡

我简单测试了一下转储很简单

D:\OraDoc\OracleTools\ociuldr>ociuldr user=scott/tiger@eygle query=select * from emp field=# record=xa file=emptxt

rows exported at ::

rows exported at ::

output file emptxt closed at rows

创建好测试表

D:\OraDoc\OracleTools\ociuldr>sqlplus scott/tiger@eygle

SQL*Plus: Release Production on 星期二 ::

Copyright (c) Oracle All rights reserved

连接到:

Oraclei Enterprise Edition Release Production

With the Partitioning option

JServer Release Production

SQL> create table empt as select * from emp where =;

表已创建

编写简单的控制文件通过sqlldr轻松加载入数据库

D:\OraDoc\OracleTools\ociuldr>cat actl

LOAD DATA

INFILE emptxt

INTO TABLE empt

APPEND

FIELDS TERMINATED BY # TRAILING NULLCOLS

(

EMPNO

ENAME CHAR

JOB CHAR

MGR

HIREDATE DATE

SAL

COMM

DEPTNO

)

D:\OraDoc\OracleTools\ociuldr>sqlldr scott/tiger@eygle control=actl

SQL*Loader: Release Production on 星期二 ::

Copyright (c) Oracle All rights reserved

达到提交点 逻辑记录计数

D:\OraDoc\OracleTools\ociuldr>sqlplus scott/tiger@eygle

SQL*Plus: Release Production on 星期二 ::

Copyright (c) Oracle All rights reserved

连接到:

Oraclei Enterprise Edition Release Production

With the Partitioning option

JServer Release Production

SQL> set linesize

SQL> select * from empt;

EMPNO ENAME JOB MGR HIREDATE SAL COMM 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说将在下一版增加自动控制文件生成的功能那时候这个工具将会更加方便了

The End

上一篇:Oracle数据库体系结构

下一篇:Oracle密码文件的使用和维护