sqluldr2是一款Oracle数据快速导出工具,包含32、64位程序,sqluldr2在大数据量导出方面速度超快,能导出亿级数据为excel文件,另外它的导入速度也是非常快速,功能是将数据以TXT/CSV等格式导出
1,下载sqluldr2,选择linux64位版本
https://pan.baidu.com/s/1JCH8Rn-aCFyqEyouXE0k7Q
2,将sqluldr2_linux64_10204.bin 拷贝到oracle安装目录
3,执行命令sqluldr2_linux64_10204.bin,报错如下
4,发现当前环境有libclntsh.so.11.1,与sqluldr2 所需包差小版本号,尝试建立软连接文件
ln -s libclntsh.so.11.1 libclntsh.so.10.1
再次执行sqluldr2_linux64_10204.bin,成功,显示其相关参数帮助。
[oracle@base0182 ~]$ sqluldr2_linux64_10204.bin
SQL*UnLoader: Fast Oracle Text Unloader (GZIP, Parallel), Release 4.0.1
(@) Copyright Lou Fangxin (AnySQL.net) 2004 - 2010, all rights reserved.
License: Free for non-commercial useage, else 100 USD per server.
Usage: SQLULDR2 keyword=value [,keyword=value,...]
Valid Keywords:
user = username/password@tnsname
sql = SQL file name
query = select statement
field = separator string between fields
record = separator string between records
rows = print progress for every given rows (default, 1000000)
file = output file name(default: uldrdata.txt)
log = log file name, prefix with + to append mode
fast = auto tuning the session level parameters(YES)
text = output type (MYSQL, CSV, MYSQLINS, ORACLEINS, FORM, SEARCH).
charset = character set name of the target database.
ncharset= national character set name of the target database.
parfile = read command option from parameter file
for field and record, you can use '0x' to specify hex character code,
\r=0x0d \n=0x0a |=0x7c ,=0x2c, \t=0x09, :=0x3a, #=0x23, "=0x22 '=0x27
主要参数说明
Field 分隔符 指定字段分隔符,默认为逗号
record 分隔符 指定记录分隔符,默认为回车换行,Windows下的换行
quote 引号符 指定非数字字段前后的引号符
例如现在要改变默认的字段分隔符,用“#”来分隔记录,导出的命令如下所示:
sqluldr2 test/test sql=tmp.sql field=#
在指定分隔符时,可以用字符的ASCII代码(0xXX,大写的XX为16进制的ASCII码值)来指定一个字符,常用的字符的ASCII代码如下:
回车=0x0d,换行=0x0a,TAB键=0x09,|=0x7c,&=0x26,双引号=0x22,单引号=0x27
在选择分隔符时,一定不能选择会在字段值中出现的字符, 如有文字描述字段,就不能使用默认的逗号分隔符。
5,执行数据导出
5.1,常规导出
sqluldr2_linux64_10204.bin user=test/test@history_162 query="select * from temp_001" head='yes' file=/home/oracle/temp_001.txt
5.2,使用sql参数
sqluldr2_linux64_10204.bin user=test/test@history_162 query=tmp.sql head='yes' file=/home/oracle/temp_001.txt
tmp.sql的内容为:select * from temp_001
5.3,使用log参数
当集成sqluldr2在脚本中时,就希望屏蔽上不输出这些信息,但又希望这些信息能保留,这时可以用“LOG”选项来指定日志文件名。
sqluldr2_linux64_10204.bin user=test/test@history_162 query=tmp.sql head='yes' file=/home/oracle/temp_001.txt log=+d:\tmp001.log
5.4,使用 table 参数
当使用 table 参数时,在目录下会生成对应的ctl控制文件,如下语句会生成temp_001_sqlldr.ctl文件。
sqluldr2_linux64_10204.bin user=test/test@history_162 query=tmp_sql table=temp_001 head='yes' file=/home/oracle/temp_001.txt
参考oracle数据导出工具sqluldr2安装及使用: https://blog.csdn.net/andy_wcl/article/details/79472605
参考Oracle使用sqluldr2: https://blog.csdn.net/cheng_feng_xiao_zhan/article/details/83620593