原因:

PLSQL乱码问题皆是ORACLE服务端字符集编码与PLSQL端字符集编码不一致引起。类似乱码问题都可以从编码是否一致上面去考虑。

解决:

1. 查询Oracle服务端字符集编码,获取NLS_CHARACTERSET字段值:

执行

1
2
sql代码 
select * from v$nls_parameters
          保存查询到的值,如:NLS_CHARACTERSET = AL32UTF8

2. 查询Oracle服务端语言信息:

执行

1
2
3
4
sql代码 
NLS_CHARACTERSET 
SELECT 'AMERICAN_AMERICA.' || PROPERTY_VALUE 
FROM DATABASE_PROPERTIES

   保存查询到的值,如:AMERICAN_AMERICA.AL32UTF8

       3. 设置本地环境变量。(PLSQL优先从环境变量中获取属性)

   右击 我的电脑 -> 属性 -> 告警系统属性 -> 高级 -> 环境变量 -> 系统变量栏

   新增如下两条记录:

1
2
3
NLS_CHARACTERSET = AL32UTF8
 
NLS_LANG = AMERICAN_AMERICA.AL32UTF8

4. 重启PLSQL,OK。

设置环境变量 重启PLSQL

NLS_LANG=AMERICAN_AMERICA.AL32UTF8

原因:

客户端与服务器端编码不一致

了解下NLS_LANG的知识

NLS_LANG 参数组成 NLS_LANG=<Language>_<Territory>.<Clients Characterset>

查看Oracle服务端编码:select * from sys.nls_database_parameters;

查看client编码:select * from sys.nls_session_parameters;

从下面服务端 编码我们可以得到: NLS_LANG = AMERICAN_AMERICA.AL32UTF8

查看oracle服务端编码:select * from sys.nls_database_parameters;

NLS_LANGUAGE  AMERICAN NLS_TERRITORY  AMERICA NLS_CURRENCY  $ NLS_ISO_CURRENCY  AMERICA NLS_NUMERIC_CHARACTERS  ., NLS_CHARACTERSET  AL32UTF8 NLS_CALENDAR  GREGORIAN NLS_DATE_FORMAT  DD-MON-RR NLS_DATE_LANGUAGE  AMERICAN NLS_SORT  BINARY NLS_TIME_FORMAT  HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT  DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT  HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT  DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY  $ NLS_COMP  BINARY NLS_LENGTH_SEMANTICS  BYTE NLS_NCHAR_CONV_EXCP  FALSE NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_RDBMS_VERSION 11.2.0.1.0

查看client编码   :select * from sys.nls_session_parameters; NLS_LANGUAGE SIMPLIFIED CHINESE NLS_TERRITORY CHINA NLS_CURRENCY ¥ NLS_ISO_CURRENCY CHINA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE SIMPLIFIED CHINESE NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY ¥ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE

明显客户端的编码和服务器端 的不一致!!!!解决办法:

设置环境变量 重启PLSQL

NLS_LANG=AMERICAN_AMERICA.AL32UTF8

此方法也适合用exp imp !以免中文有乱码出现!或部分数据乱码!

WINNT>   set NLS_LANG=AMERICAN_AMERICA.AL32UTF8Linux>    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

查看 NLS_LANG 的方法 Windows使用:echo %NLS_LANG%

C:\Users\Administrator>echo %NLS_LANG% AMERICAN_AMERICA.AL32UTF8

修改db编码的办法:(在oracle 11g上通过测试) --风险操作....最好不要用!!!!!!!! SQL> conn system as sysdba; SQL> shutdown immediate; SQL> startup mount; SQL> alter system enable restricted session; SQL> alter system set job_queue_processes=0; SQL> alter database open; SQL> alter database character set internal_use AL32UTF8; SQL> shutdown immediate; SQL> startup

--转自冰雪飞燕

解决PLSQL查不到带中文条件的记录的更多相关文章

  1. PLSQL显示乱码-无法进行中文条件查询解决

    PLSQL显示乱码-无法进行中文条件查询解决 原因: PLSQL乱码问题皆是ORACLE服务端字符集编码与PLSQL端字符集编码不一致引起.类似乱码问题都可以从编码是否一致上面去考虑. 解决: 1. ...

  2. plsql查找不到带中文的纪录

    今天在另外的电脑用plsql查询不到带中文的记录 select * from test where name like '%测试%' 然后发现是系统的环境变量还没设置好所造成的.在系统变量加入如下变量 ...

  3. 【转】如何解决plsql查询oracle数据库语句where条件带有中文无法匹配结果

    一.问题描述 之前使用PLSQL查询oracle数据库可以正常查询统计结果,由于换了个电脑,重新安装之后,同样的sql查询语句同一个数据库,无法正常查询结果,如下图所示 二.解决办法 1. 查询数据当 ...

  4. PL/SQL Developer 使用中文条件查询时无数据的解决方法(转)

    原文地址: PL/SQL Developer 使用中文条件查询时无数据的解决方法 PL/SQL Developer 使用中文条件查询时无数据,这是由于字符集的不一致导致的. 执行以下sql命令:sel ...

  5. PL/SQL Developer 使用中文条件查询时无数据的解决方法

    PL/SQL Developer 使用中文条件查询时无数据,这是由于字符集的不一致导致的. 执行以下sql命令:select userenv('language') from dual; 显示:SIM ...

  6. 解决PLSQL Developer 插入中文 乱码问题(转)

    原文地址:解决PLSQL Developer 插入中文 乱码问题 PLSQL Developer 插入中文 乱码问题,如图     这个是由于oracle服务器端字符编码 和 Oracle 客户端 字 ...

  7. hibernate连接mysql,查询条件中有中文时,查询结果没有记录,而数据库有符合条件的记录(解决方法)

    今天在另一台服务器上重新部署了网站,结果出现了以下问题: ——用hibernate做mysql的数据库连接时,当查询条件中有中文的时候,查询结果没有记录,而数据库中是存在符合条件的记录的. 测试了以下 ...

  8. PLSQL往Oracle数据库插入中文后变为问号 和 启动PLSQL时提示NLS_LANG在客户端不能确定的解决办法

    PLSQL往Oracle数据库插入中文后变为问号 和 启动PLSQL时提示NLS_LANG在客户端不能确定的解决办法 1.检查服务器的字符编码 Select * from V$NLS_PARAMETE ...

  9. android 发送url带中文出现乱码怎么解决

    上传的时候参数中带中文的时候发送参数的时候就有可能出现乱码,这种情况怎么解决呢,就是设置url的格式为utf-8 httpRequest.setEntity(new UrlEncodedFormEnt ...

随机推荐

  1. 手把手教你学Dapr - 5. 状态管理

    上一篇:手把手教你学Dapr - 4. 服务调用 介绍 使用状态管理,您的应用程序可以将数据作为键/值对存储在支持的状态存储中. 您的应用程序可以使用 Dapr 的状态管理 API 使用状态存储组件来 ...

  2. LeetCode刷题 二分专题

    二分专题 二分的题目类型 对于满足二段性的题目的两套模板 模板一 模板如下 模板二 模板如下 解决二分题目的一般流程 LeeCode实战 LC69.x的平方根 解法思路 LC35.搜索插入位置 解法思 ...

  3. linux查看和修改时间

    查看时间: # date Fri Jan 11 18:04:10 CST 2020设置时间 # date -s "19:20:30"设置日期+时间 # date -s " ...

  4. codeforces心得1---747div2

    codeforces心得1---747div2 cf div2的前AB题一般是字符串or数论的找规律结论题 因此标程极为精简 1.小窍门是看样例或者自己打表或造数据找规律 2.一些不确定的操作,可以化 ...

  5. 我罗斯方块最终篇(Interface类)

    负责的任务 游戏过场及界面设计 Interface类的基础实现 根据队友需求完善Interface类功能 Interface类的本地测试 辅助队友改良游戏操作 代码要点 我们主要是通过控制台进行界面渲 ...

  6. 设计模式学习-使用go实现外观模式

    外观模式 定义 适用范围 代码实现 优点 缺点 关于接口粒度的思考 参考 外观模式 定义 外观模式也叫门面模式 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接 ...

  7. [loj2977]巧克力

    先考虑第一个问题,即求最小的巧克力块数 将这张网格图建图(仅对$c_{i,j}\ne -1$的位置建点),即求点数最少的连通块(的点数)使得存在$k$个不同的$c_{i,j}$ (以下$c$仅用一维数 ...

  8. asList和subList的缺陷

    概述 在开发中我们经常使用asList去把一个数组转换为List.也存在通过subList.subMap.来对List.Map.Set来进行类似使用subString方法来对String对象进行分割处 ...

  9. vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6. You

    这是因为你安装的是2.9的版本用了3.0的命令 解决方法:1.用2.9的命令初始化项目 vue init webpack my-project 2.卸载2.9升级到3.0

  10. 咸阳市大数据管理局使用Rainbond作为智慧城市底座的实践

    使用 Rainbond 作为智慧城市底座之后,给我们带来了成倍的运维效率提升. -- 咸阳市大数据管理局 熊礼智 咸阳市大数据管理局负责全市信息共享工作的组织领导,协调解决与政府信息共享有关的重大问题 ...