文档章节

PL/SQL查询中文显示乱码

weiter123
 weiter123
发布于 2017/04/01 18:02
字数 547
阅读 31
收藏 0

刚接触数据库,遇到了个小问题,却花了两天时间。总以为遇到的困难都是因为知识不够,于是乎一味的去搜集信息或者寻求帮助。其实有时候也许是思维能力或者思维方式的问题。

好了,步入正题。我遇到的问题是用pl/sql搜索了数据库的一张表(数据库和plsql都是本地的),结果里面的中文全部变成了“???”。于是去百度了原因:

我总结一下大概有一下三个方面:

一:数据库服务器端和字符集不一致的问题

这个问题我觉着有前辈已经讲得很清楚了,捧上原博链:http://www.2cto.com/database/201111/111388.html

大致归纳一下就是字符集要一致,通过select * from nls_database_parameters;--可以得到结果:AMERICAN_AMERICA_AL32UTF8,这里AL32UTF8为数据库服务器端字符集,然后就是修改dmp文件字符集、环境变量还有编辑注册表使得字符集一致。最后我的结果是这样的:

select * from V$NLS_PARAMETERS--SIMPLIFIED CHINESE_CHINA_AL32UTF8
select * from nls_database_parameters;--AMERICAN_AMERICA_AL32UTF8
select userenv('language') from dual;--  SIMPLIFIED CHINESE_CHINA.AL32UTF8
 --SIMPLIFIED CHINESE_CHINA.AL32UTF8   环境变量和注册表

二:原数据问题

你可以去更改一下原数据,搜搜看中文还是不是乱码。(我就是这个没有想到,改了好久,结果是原数据的问题)

 

三:创建start.bat文件 ,也有可能你已经在plsql的安装根目录下已经有了。这个时候需要看里面的路径和环境变量字符集是不是有问题了。具体操作也是有人写得较清楚了,链接如下:http://jingyan.baidu.com/article/36d6ed1f2861f41bcf488327.html

我的配置如下:

@echo off
set path=D:\instantclient_11_2                         
set ORACLE_HOME=D:\instantclient_11_2
set TNS_ADMIN=D:\instantclient_11_2#
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8
start plsqldev.exe

这里可以先用.txt来编辑,另存为.bat就可以了。

最后,产生问题的原因有很多种,解决方式也有很多种,希望大家可以在解决问题的过程中学到的不仅仅是知识还有思考方式。感谢分享知识伟大网友。

© 著作权归作者所有

weiter123
粉丝 0
博文 1
码字总数 547
作品 0
私信 提问
Oracle11gR2 数据库客户端PL/SQL中文乱码的问题

在进行oracle数据库的数据操作时,发现中文出现了乱码。这真是件麻烦事情。其实解决乱码的问题很简单,需要我们的PL/SQL Oracle客户端的字符集编码和Oracle数据库的字符集编码保持一致。 1、...

pmos
2016/09/07
72
0
PL/SQL Developer 中文乱码解决

oracle 10g装上后,建了个表写入中文数据,发现通过工具DbVisualizer 6.5 写入/读取中文都正常,就sqlplus和PL/SQL Developer不正常. 初步怀疑是DbVisualizer本身定义了字集编码,而sqlplus和PL/...

小样
2011/11/25
3.5K
2
PLSQL Developer 中文 乱码问题

PLSQL Developer 插入中文 乱码问题,如图 这个是由于Oracle服务器端字符编码 和 Oracle 客户端 字符编码不一致引起的。 检查Oracle服务器端字符编码,用 select userenv('language') from ...

落幕之殇
2017/05/14
0
0
druid连接mysql读取正常,但写入乱码

@wenshao 你好,想跟你请教个问题: 请问mysql中文乱码怎么解决……求温少给个范例…研究了好几天了,尝试各种配置还是无效 我已经在连接url中加入了useUnicode=true&characterEncoding=UTF...

blackcatIan
2015/06/21
1K
4
关于PL/SQL Developer 中文乱码的解决

感谢前辈的分享,转载地址:http://yangfei520.blog.51cto.com/1041581/977152 前天项目的开发数据库换到另一台服务器了,不知道哪位大仙把新数据库的编码改变了,大家使用PL/SQL Developer连...

renwuzhongguo
2014/06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RxJava进行单元测试的方式

@Test public void completeTask_retrievedTaskIsComplete() { // Given a new task in the persistent repository final Task newTask = new Task(TITLE, ""); ......

SuShine
16分钟前
2
0
正则表达式大全

检验手机号码 # 要求:手机号码必须为11位数字,以1开头,第二位为1或5或8。import redef verify_mobile(): mob = input("请输入手机号码:") ret = re.match(r"1[358]\d{9}", m......

彩色泡泡糖
19分钟前
3
0
QT之border-image属性

一、border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人。可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持...

shzwork
20分钟前
5
0
Kubernetes Operator简易教程

1. 安装operator-sdk //安装 operator-sdk$ apt-get install operator-sdk.....$ operator-sdk versionoperator-sdk version: v0.7.0$ go versiongo version go1.11.4 darwin/amd64 2......

Robotcl_Blog
20分钟前
4
0
再谈DAG任务分解和Shuffle RDD

1、DagScheduler分析 DagScheduler功能主要是负责RDD的各个stage的分解和任务提交。Stage分解是从触发任务调度过程的finalStage开始倒推寻找父stage,如果父stage没有提交任务则循环提交缺失...

守望者之父
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部