关于ociuldr数据导出工具的使用说明

关于ociuldr数据导出工具的使用说明

一、工具说明

在日常开发过程中,我们经常要把数据库中的数据导出到文本文件(如CSV、Excel等)中,但Oracle本身并不提供导出数据到文件文件的工具,此时我们可以使用ociuldr工具来帮助我们。
ociuldr是用高效率的OCI接口编写的一个工具, 可以在各种不同的平台下编译成可执行文件. 众多的命令行选项, 提供的丰富的功能, 如优化导出速度, 自动生成sqlldr控制文件, 以方便进行数据装载或迁移. 通过判断程序退出代码, 可以很方便地在Shell或Perl脚本中集成使用.
sqluldr是ociuldr的升级版本, 通过有效IO优化, 得到50%左右的速度提升, 并增加了一些企业版的功能. 可以下载Windows/Linux/AIX平台的可执行文件, 用法和ociuldr基本一致, 兼容ociuldr的所有命令行选项和功能.

二、使用方法

1、我们可在站点http://www.anysql.net/ 上下载ociuldr的压缩包(注意:如今ociuldr由于版本升级,现已经改名为SQLULDR2)。
2、把sqluldr.zip包解压,把可执行文件sqluldr2.exe放在某一目录下,如放置在D:\ociuldr\sqluldr2.exe,在命令行中执行命令D:\ociuldr>sqluldr2.exe,结果如下图所示:

上图中,Usage: SQLULDR2 keyword=value[,keyword=value,…] 指的是sqluldr2的命令用法。
在Valid Keywords中分别有user、sql、query、field等等keyword,这些keyword用来设置目标数据库的用户名\密码、查询的sql语句、查询的sql文档、日志文件的文件名及路径、字符集编码等等信息。
3、keyword详解
User:指定目标数据库的用户名、密码和tnsname;
Sql : 设置所要执行的sql文件;
Query:设置所要执行的sql语句;
Field:设置每个field间的分隔字符串;
Record:设置每个record间的分隔字符串;
Rows: 指定输出多少行以后打印一条日志,可以更好的观察进度(默认是1000000)
File:设置导出的数据的文件名(如:sqluldrData.txt);
Log:设置生成的log文件;
Text:设置输出的文件类型;
Charset:设置输出的字符集;
Ncharset: 设置输出的字符集;
Parfile:
4、一个简单的使用例子
假设我要把8.15数据库上的表exg_plm_order的数据导出到CSV文档中。我们可以先在sqluldr2.exe同一目录下编辑一个bat文件,文件内容如下:

可以看到,文件中根据需要设置了user、query、charset、log、file等等配置。接着我们执行该bat文件,可以在命令行界面中看到以下输出

接着查看文件生成目录,可以查看sqluldr2工具生成的文件:

由上图可见,执行exp.bat文件后,生成了一个.csv文件,一个.log文件和一份.ctl文件。
XXX .csv即为该表中数据所导出的数据文件,XXX.log文件为执行的日志文件,XXX.ctl文件为自动生成的控制文件。
5、关于生成文件的说明

exg_plm_order.csv文件
通过对charset、records、field、等属性的设置,来控制数据输出的格式。

exg_plm_order.log文件
log文件记录了工具执行过程中的信息,比如output了多少条数据(途中以500000为输出单位)、数据量是多少MB、数据输出时间等等



exg_plm_order_sqlldr.ctl控制文件
ctl文件用于结合sql loder来对数据进行导入到数据库。

三、ociuldr结合sqlloder使用方法

在使用ociuldr把数据库数据导出到文本后,工具会按照所导出的表的字段自动生成ctl控制文件,我们可以使用该控制文件结合sqlloder来把数据导入到数据库中。

  1. sqlldr导入数据的一个最简单例子

以下是使用sqlloder导入数据的简单例子,ctl文件的内容如下
load datainfile *  --告诉sqlldr要加载的数据就包含在控制文件本身 insert into table dept --加载到哪个表 fields terminated by ',' --数据加载形式应该是逗号分隔的值 (列名,列名,列名…)  --所要加载的列
(2) sqlldr导入的四种加载方式:
APPEND :原先的表有数据 就加在后面 INSERT:装载空表 如果原先的表有数据 sqlloader会停止 默认值 REPLACE :原先的表有数据 原先的数据会全部删除 TRUNCATE :指定的内容和replace的相同 会用truncate语句删除现存 数据


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值