sqluldr2
是一个基于OCI
的文本导出工具,小巧方便,使用方法类似于Oracle
自带的exp
,支持自定义SQL
、本地
和客户端
的导出,速度快,效率高。
完成下载,将sqluldr264
放入oracle_home
下,或是oracleclient
下也行,未必需要是oracleservice
,然后可以用cmd
运行命令,或是写成批处理文件。
软件下载地址:
百度云链接:https://pan.baidu.com/s/1V8eqyyYsbJqQSD-Sn-RQGg
提取码:6mdn
下载完后并解压会生成4个文件
sqluldr2.exe 用于32位windows平台;
sqluldr2_linux32_10204.bin 适用于linux32位操作系统;
sqluldr2_linux64_10204.bin 适用于linux64位操作系统;
sqluldr264.exe 用于64位windows平台。
连接数据的方法:
本地连接方式:
./sqluldr2linux64.bin user=gltest/gltest query="select * from T_H_BK_CUSTOMER_20180114_0;" file=/home/oracle/sqluldr2/T_H_BK_CUSTOMER_20180114_0.csv
客户端连接:TNS
方式
./sqluldr2linux64.bin user=gltest/gltest@orcl query="select * from T_H_BK_CUSTOMER_20180114_0;" file=/home/oracle/sqluldr2/T_H_BK_CUSTOMER_20180114_0.csv
客户端连接:直接连接方式
./sqluldr2linux64.bin user=gltest/gltest@192.168.128.98:1521/orcl query="select * from T_H_BK_CUSTOMER_20180114_0;" file=/home/oracle/sqluldr2/T_H_BK_CUSTOMER_20180114_0.csv
对于大表可以输出到多个文件中,指定行数分割或者按照文件大小分割,例如:
sqluldr2 testuser/testuser@orcl query="select * from test_table2" file=test_table2_%B.txt batch=yes rows=500000
执行数据导出命令
1、常规导出
sqluldr2 hr/hr123@127.0.0.1:1521/XE query="select * from bb_user_t" head=yes file=D:\sqluldr2\File\tmp001.csv
说明:head=yes 表示输出表头
2、使用sql
参数
sqluldr2 hr/hr123@127.0.0.1:1521/XE sql=query.sql head=yes file=D:\sqluldr2\File\tmp002.csv
或
sqluldr2 hr/hr123@127.0.0.1:1521/XE sql=D:\sqluldr2\query.sql head=yes file=D:\sqluldr2\File\tmp002.csv
-- query.sql的内容为:select * from bb_user_t
3、使用log
参数
当集成sqluldr2在脚本中时,就希望屏蔽上不输出这些信息,但又希望这些信息能保留,这时可以用“LOG”选项 来指定日志文件名。
sqluldr2 hr/hr123@127.0.0.1:1521/XE sql=D:\sqluldr2\query.sql head=yes file=D:\sqluldr2\File\tmp003.csv log=+D:\sqluldr2\File\tmp003.log
比较常用参数的是:
query:用这个参数可以自定义导出语句
file:导出的文件名字和目录
log:日志
parfile:可以把参数放到parfile文件里,这个参数对于复杂sql很有用。
field:设置导出文件里的分隔符
遇到错误的解决方法:
1. 导出文件里有中文显示乱码,需要设置参数charset=UTF8
2. ORA-24345: A Truncation or null fetch error occurred,设置参数safe=yes