码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 用中文作为关键字查询无数据及sql loader 导入数据时数据分隔异常的解决办法

时间:2019-11-11 13:09:05      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:loader   安装   判断   使用   无数据   life   rac   nes   关键字查询   

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

Oracle 用中文作为关键字查询无数据及sql loader 导入数据时数据分隔异常的解决办法

标签:loader   安装   判断   使用   无数据   life   rac   nes   关键字查询   

原文地址:https://www.cnblogs.com/sy-gbl/p/11833946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!