原因:

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. easypoi导出动态表头excel

    easypoi导出动态表头excel 1: springBoot项目maven依赖: <dependency> <groupId>cn.afterturn</groupI ...

  2. 10分钟简单学习net core集成jwt权限认证,快速接入项目落地使用

    什么是JWT JSON Web Token(JWT)是目前最流行的跨域身份验证.分布式登录.单点登录等解决方案. JWT的官网地址:https://jwt.io/ 通俗地来讲,JWT是能代表用户身份的 ...

  3. c++学习笔记7(面向对象的程序设计)

    面向对象的程序=类+类+....+类 设计程序的过程,就是设计类的过程 实例 对象的内存分配 对象间的运算 使用类的成员变量和成员函数

  4. eclipse下的python环境安装

    添加python开发环境到eclipse:   点击help--install New Software 点击add,弹出新窗口: Name:填PyDev Location:填 http://pyde ...

  5. inux 下配置网卡的别名即网卡子IP的配置 转

    what 什么是ip别名?用windows的话说,就是为一个网卡配置多个ip.when 什么场合增加ip别名能派上用场?布网需要.多ip访问测试.特定软件对多ip的需要...and so on. ho ...

  6. [atAGC052D]Equal LIS

    令$f_{i}$表示以$i$为结尾的最长上升子序列,显然可以快速预处理 令$L=\max_{i=1}^{n}f_{i}$,当$L$为偶数,考虑如下构造-- 将所有$f_{i}\le \frac{L}{ ...

  7. [atAGC050F]NAND Tree

    当$n$为偶数,暴力$o(n)$枚举第一次操作,以下只考虑$n$为奇数的情况 此时,$n-1$即操作次数为偶数,找到最小的$i$(其中$1\le i\le \frac{n-1}{2}$),满足第$2i ...

  8. [atAGC050E]Three Traffic Lights

    原题意可能略微有一些复杂,这里给出简述的题意-- 给定$g_{i}$和$r_{i}$(其中$1\le i\le 3$),求有多少个整数$t$满足: $0\le t< \prod_{i=1}^{3 ...

  9. [bzoj1188]分裂游戏

    容易发现所有豆子相互独立,只需要考虑每一个豆子的sg函数并异或起来即可,sg函数从后往前暴力即可 1 #include<bits/stdc++.h> 2 using namespace s ...

  10. Topcoder 15405 - PrettyLiar(可删除背包+前缀和优化 dp)

    题面传送门 题意: 给出两个长度为 \(n\) 的数组 \(a,b\) 和一个整数 \(s\). 你可以任意重排数组 \(a,b\),总共 \((n!)^2\) 种方案. 现在又两个人 A,B 来玩游 ...