Oracle数据库导出txt格式工具sqlload2使用
开发需求:需要在数据库中查询数据,最终得到cxv表格形式数据。
使用plsql导出70M数据量非常慢,本次使用sqlload2工具,导出文本txt文本格式。
1)导出txt文本文件
$ ./sqluldr2_linux64_10204.bin YUTONG_SHFW/xx query="SELECT LSVE.LSVE_VEHICLE_NO AS 车工号, ······ > WHERE 1 = 1;" file=LS_VEHICLE.txt 0 rows exported at 2019-09-18 18:32:21, size 0 MB. 727102 rows exported at 2019-09-18 18:32:28, size 231 MB. output file LS_VEHICLE.txt closed at 727102 rows, size 231 MB.
2)导出csv文件
[oracle@ytwebdb ~]$ ./sqluldr2linux64.bin system/zz_db.207 field=, head=yes sql=20191015_01.sql file=20191015_01.csv
使用逗号进行分隔=>field=,
显示列名称=>head=yes
操作介质及使用手册
链接:https://pan.baidu.com/s/1e2AuJ7xXLxyUMEMo1RmgXA
提取码:ansg
遇到的问题记录:
1.导出报错
error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory
发现,echo $LD_LIBRARY_PATH NULL
通过find / -name libclntsh.so.10.1 找到文件路径,临时指定环境变量
export LD_LIBRARY_PATH=/oracle/product/11.2.0.4/lib/
2.导出文件乱码
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 通过这种方式修改语言格式,经测试可以接受。
3.使用,逗号进行分隔后,导出的csv文件有换行现象,使用其它方式进行分隔,原因是使用,逗号进行分隔列,但是如果列的内容中存在,逗号,那么导出的问题显示自动分隔!!!
导出文本后,使用Notepad++,或者使用UE(没有破解),TXT文本编辑器(文件大很慢)使用Encoding进行格式转换,转换为utf8-8-BOM格式文本后,修改文件后缀.csv即可