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。之后测试一切正常。判断注册表不是问题原因,环境变量才是导致问题的原因。具体为什么要这么设置不得而知。留待以后研究。

  • 相关阅读:
    虚拟机docker开启服务,本地无法进行访问
    make编译提示:make cc Command not found 解决办法
    yum -y install git 无法安装...提示There are no enabled repos.
    linux 安装mysql
    linux 配置环境变量
    HTML5第三天 无序有序列表、相对绝对路径
    JavaScript第一天
    HTML第二天
    mysql流程控制语句
    mysql存储过程和函数
  • 原文地址:https://www.cnblogs.com/sy-gbl/p/11833946.html
Copyright © 2011-2022 走看看