ORACLE 使用sqluldr2和sqlldr进行导入导出


            当需要大数据量的导入导出的数据迁移操作时,效率变得极其重要


oracle数据导出工具sqluldr2可以将数据以csv、txt等格式导出,适用于大批量数据的导出,

导出速度非常快。导出后可以使用oracle loader工具将数据导入。

下载完sqluldr2,文件夹内容如下:
sqluldr2_linux32_10204.bin和sqluldr2_linux64_10204.bin分别适用于与linux32位和linux64位操作系统;

sqluldr2.exe用于windows平台。


导出:在sqluldr2.exe所在的文件夹路径打开命令行,输入sqluldr2,回车,可查看相关参数


sqluldr2.exe USER=hh/hh@tiod QUERY="select /*+ parallel(2) */  *from hh.ent_person"

 table=ent_person head=yes FILE=C:\ent_person.txt

p.s. head=yes表示第一行为表头;并且query也可以写入一个文件然后使用sql选项。

默认分隔字符为逗号,如果列中有特殊字符,可使用field选项指定新的分隔字符。

数据已经导入到C:\ent_person.txt,几十万数据秒速。

使用sqlldr进行导入,首先找到$ORACLE_HOME的bin目录生成的ctl文件,

当sqluldr2输入了table='XXXXX 参数时会默认生成ctl文件,以用于导入。

将数据加载到数据库中:

sqlldr jms/jms@tiod control=ent_person_sqlldr.ctl 

log=ent_person_sqlldr.log bad=ent_person_sqlldr_bad.log skip=1  

errors=5000 rows=5000 bindsize=335542

p.s. skip=1表示跳过第一行,从第二行开始导入。

注意:默认生成的ctl控制文件,数据入库方式为insert,要求要插入

的表里没有数据,如果有数据可以将ctl文件中的insert方式修改为

append。

还有一点当数据量过大时,执行命令就不要设置rows,使用ctl自己配置的行数

(rows= 50000 指五万条数据提交一次)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章