• SQLLDR导入乱码问题的解决


     

    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               (在ctl文件加上字符集,与oracle的字符集相同即可 select * from v$nls_parameters t where t.PARAMETER =' NLS_CHARACTERSET';
    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)
     
     
    欢迎对it热情的同学,加qq进行技术讨论; QQ:850922253
  • 相关阅读:
    清北刷题班day3 morning
    [NOI1997] 积木游戏(dp)
    [NOI1999] 棋盘分割(推式子+dp)
    2017北京国庆刷题Day7 afternoon
    湖南集训day8
    湖南集训day7
    湖南集训day6
    湖南集训day5
    湖南集训day4
    湖南集训day3
  • 原文地址:https://www.cnblogs.com/zhangwensi/p/6619002.html
Copyright © 2020-2023  润新知