SQLLDR导入乱码问题的解决

简介:
场景:
业务部门要求导入一批数据,是CSV格式的,大家就想到了EXCEL格式可以打开,但悲剧的是该批数据超过10万条,用EXCEL处理显然行不通,更悲剧的是打开直接就是乱码。于是笔者接了单子,筹划用SQLLDR进行导入。话说7年前做野村证券的BATCH系统时大量的使用了UNIX SHELL调用ORACLE SQLLDR功能,但若干年没用了居然对预防有些生疏。
 
处理过程:
1、本地建立控制文件
 
load data
infile 'd:\TMP_KAITOUSHUJU.csv'
into table TMP_KAITOUSHUJU
fields terminated by ','
(TRADE_CO,FULL_NAME,CUSTOMS_CODE,CO_CLASS,VALID_DATE,RG_DATE,ADDR_CO,BUSI_TYPE,CONTAC_CO,TEL_CO,LAW_MAN,LAW_MAN_TEL,CO_TYPE,BREAK_LAW_TIME1,BREAK_LAW_TIME2,INSPECT_TIME,COP_MODIFY_DATE)
2、WINDOWS下运用如下命令执行导入
sqlldr userid=test/test@PORTGB control=d:/TMP_KAITOUSHUJU.ctl log=d:/SQLLOAD.log

3、导入出错,提示部分列为空,查语法后改正控制文件如下
load data
infile 'd:\TMP_KAITOUSHUJU.csv'
into table TMP_KAITOUSHUJU
fields terminated by ','
trailing nullcols     --将所有不在纪录中的指定位置的列当作空值
(TRADE_CO,FULL_NAME,CUSTOMS_CODE,CO_CLASS,VALID_DATE,RG_DATE,ADDR_CO,BUSI_TYPE,CONTAC_CO,TEL_CO,LAW_MAN,LAW_MAN_TEL,CO_TYPE,BREAK_LAW_TIME1,BREAK_LAW_TIME2,INSPECT_TIME,COP_MODIFY_DATE)

4、导入成功,但打开一看乱码
通过select * from v$nls_parameters; 查看NLS_CHARACTERSET为AL32UTF8,
而我本机是GBK,于是本机通过DOS窗口进行如下设置:
set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
同时更改控制文件如下:
load data
CHARACTERSET AL32UTF8
infile 'd:\TMP_KAITOUSHUJU.csv'
into table TMP_KAITOUSHUJU
fields terminated by ','
trailing nullcols     --将所有不在纪录中的指定位置的列当作空值
(TRADE_CO,FULL_NAME,CUSTOMS_CODE,CO_CLASS,VALID_DATE,RG_DATE,ADDR_CO,BUSI_TYPE,CONTAC_CO,TEL_CO,LAW_MAN,LAW_MAN_TEL,CO_TYPE,BREAK_LAW_TIME1,BREAK_LAW_TIME2,INSPECT_TIME,COP_MODIFY_DATE)


本文转自zylhsy 51CTO博客,原文链接:http://blog.51cto.com/yunlongzheng/965850,如需转载请自行联系原作者
相关文章
|
SQL 数据库
PowerDesigner导出SQL脚本运行注释出现乱码问题
PowerDesigner导出SQL脚本运行注释出现乱码问题
315 0
|
4月前
Navicat——数据以CSV格式文件导出后乱码
Navicat——数据以CSV格式文件导出后乱码
80 0
|
7月前
|
JavaScript
盘点CSV文件在Excel中打开后乱码问题的两种处理方法
盘点CSV文件在Excel中打开后乱码问题的两种处理方法
1638 0
|
存储 缓存 Python
excel打开csv乱码解决------------为什么pycharm里面csv不乱码,excel里面却乱码了
excel打开csv乱码解决------------为什么pycharm里面csv不乱码,excel里面却乱码了
528 0
excel打开csv乱码解决------------为什么pycharm里面csv不乱码,excel里面却乱码了
|
Java 数据库连接 数据安全/隐私保护
Beeline -e 写 CSV 文件乱码
Beeline -e 写 CSV 文件乱码
|
安全 关系型数据库 MySQL
sqlyog导入csv失败的解决方法
sqlyog导入csv失败的解决方法
|
SQL 关系型数据库 MySQL
在linux命令下导出导入.sql文件的方法
在linux命令下导出导入.sql文件的方法
439 0
在linux命令下导出导入.sql文件的方法
|
关系型数据库 MySQL Shell
【shell mysql 导出数据到csv脚本,完美解决乱码转义符等问题】-费元星
#!/bin/bash#@author:feiyuanxing 【既然笨到家,就要努力到家】#@date:2017-12-05#@E-Mail:feiyuanxing@gmail.com#@TARGET:一键导出mysql数据到 csv #@CopyRight:本脚本遵守 未来星开源协议(http://feiyuanxing.
2311 0