zoukankan      html  css  js  c++  java
  • Oracle 用中文作为关键字查询无数据及sql loader 导入数据时数据分隔异常的解决办法

    前提:电脑A使用sqlldr向电脑B中的Oracle批量导入数据。数据分隔及查询都正常。

    拷贝A中的源数据及ctl文件到电脑C中,拷贝B中的Oracle安装文件并安装至电脑C中。

    电脑C使用ctl将源文件导入本机Oracle中之后发现。导入的数据分隔错误,比如aaa@bbb@ccc格式的数据,sqlldr导入的时候用@分隔。但是实际导入结果并不是column1=aaa,column2=bbb, column3=ccc;有部分数据变成了column1=aaa@,column2=bbb@,column3=''的这种情况,并且再使用select* from table xxx where column1 = 'keyword' 查询的时候,非中文关键字查询正常。中文关键字 查询不到数据(实际有数据)。百度后网上一致认为是服务端和客户端字符集不一致原因造成。于是使用网上方法查询电脑C中Oracle服务端字符集编码方式和客户端字符集编码方式。前后将系统变量NLS,注册表文件中NLS都设置成了和服务端一样的AMERICAN_AMERICA.AL32UTF8,之后测试导入数据及查询仍然出现上述问题。后对比电脑C和电脑A的系统环境变量设置和注册表设置。先修改电脑C注册表NLS和A一样SIMPLIFEID CHINESE_CHINA.AL32UTF8,之后测试导入和查询,问题依然存在。随即修改系统变量NLS_LANG值为AMERICAN_AMERICA.ZHS16GBK。之后测试一切正常。判断注册表不是问题原因,环境变量才是导致问题的原因。具体为什么要这么设置不得而知。留待以后研究。

  • 相关阅读:
    ARM与MIPS平台优劣对比分析
    ARM11Linux2.6ButtonDriverBaseinfo1
    程序员都应该阅读的十一本名书
    驱动设计ARM(6410)按键驱动0基础知识点
    创业编程七个错误认识
    ARM11Linux2.6ButtonDriverBaseinfo
    Arm设计思想与高效C语言编程联系
    个人软件已死?
    评价一个软件的3个角度
    我对北理FTP联盟的建议
  • 原文地址:https://www.cnblogs.com/sy-gbl/p/11833946.html
Copyright © 2011-2022 走看看