您的当前位置:首页解决plsql乱码问题

解决plsql乱码问题

2023-11-10 来源:六九路网

查看数据库服务器的字符集

select * from nls_database_parameters where parameter=‘NLS_CHARACTERSET‘;

PARAMETER                     VALUE

NLS_CHARACTERSET              ZHS16GBK

select sys_context(‘USERENV‘, ‘LANGUAGE‘);

客户端字符集

select * from nls_instance_parameters

技术分享

会话字符集

select * from nls_session_parameters

--如果没有特别设置,会跟nls_instance_parameters一样

--字符集要求一致,但是语言设置可以却可以不同

--字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk

--1.echo %NLS_LANG%

--无返回结果

--2.在windows上加环境变量

技术分享

再echo

C:Usersyl>echo %NLS_LANG%

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

重新登录PLSQL,问题解决

本文出自 “yangwang” 博客,谢绝转载!

解决plsql乱码问题

标签:oracle plsql乱码 字符集

小编还为您整理了以下内容,可能对您也有帮助:

pl/sql developer中文乱码,为什么呢?怎么解决?Oracle问题

pl/sql developer 中文字段显示乱码:

原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的。

解决方法如下:

一、查看和修改oracle数据库字符集:

select userenv('language') from al;

二、修改pl/sql developer 的编码格式:

在windows中创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。

如果想转换为UTF8字符集,可以赋予“NLS_LANG”为 “AMERICAN_AMERICA.UTF8”,然后重新启动 pl/sql developer。其它字符集设置同上。

扩展资料:

ORACLE数据库常见问题及诊断方法 :

1,ORA-12571、ORA-03113、ORA-03114、ORA-01041

特征:

客户端(代理或应用服务器)有时报这类断连错误。

原因:

如果偶尔出现一次,则可能为网络原因或用户异常中止,如果经常出现则为客户端与服务端的字符集不一致。     

措施:

如果偶尔出现,可在服务端的协议配置文件PROTOCOL.ORA中增加一行TCP.NODELAY=YES。

如果经常出现,则为客户端与服务端字符集不一致或网络原因。客户端的字符集在注册表里定义:HKEY__LOCAL__MACHINE/SOFTWARE/ORACLE/NLS__LANG。在客户端注册表中的TCP参数项中设置TCPMAXDATARETRANSMITIONS=20。

2,ORA-01000    

特征:

达到会话允许的最大游标数。  

原因:

达到会话允许的最大游标数。    

措施:

在初始化文件INIT.ORA文件中增加OPEN_CURSORS的数量,一般要求大于200。

plsql出乱码怎么办?

1、首先在电脑上找到并打开PLSQL,弹出登陆界面,进去登陆。

2、然后随便写了一个查询语句,发现显示有乱码。

3、这时先查看oracle服务器端的字符编码是什么。

4、配置一个环境变量就可以解决问题,这时回到电脑桌面,打开计算机属性。

5、然后点击高级系统设置,接着在高级选项卡下点击-环境变量选项。

6、然后点击新建,名称和变量值如下图所示,点击确定。

7、最后加好环境变量之后,关闭PLSQL重新打开,写一个查询就不会再出现问题了。

PL/SQL的 "COPY TO EXCEL "功能时候,excel中中文数据乱码,求解

我也同样出现这样的问题,主要是由于PL/SQL是汉化软件,对中文的支持不是很好,尤其是Oracle的数据库,普通的数据库,汉字占两个字节位,Oracle占三个,所以在输出的时候,PL/SQL软件会判断错误。

解决方案:
1、推荐你更换PL/SQL版本,多尝试几个版本。
2、使用TOAD,似乎支持要好一些(我自己用的就是这个,目前TO Excel后,发现部分×号和φ要出现问题以外,中文汉字暂时还没发现问题)。
3、用英文版软件。中文版,很多汉化水平不高,或者汉化的时候,没有考虑好汉字库的支持,容易出现这个问题。追问TOAD有绿色版本的吗?就是不要装客户端也可以访问Oracle的。PL/SQL可以不装Oracle直接连接数据库的

追答1、TOAD,目前我还没发现绿色版本。就是需要安装客户端才能访问Oracle。
2、我手上的PL/SQL,是需要安装客户端才能访问Oracle的。

乱码的原因,也有可能是由于没安装客户端,Oracle的链接有问题所造成的。
亲,完Oracle这种大型数据库,就不要偷懒了,还是安装客户端吧,没必要安装完整客户端,如果只是提供链接,安装第三个选项的客户端就可以了。(第一个是完整、第二个是精简、第三个我忘记是什么了,就记得,安装第三个选项就能使用了)

PL/SQL的 "COPY TO EXCEL "功能时候,excel中中文数据乱码,求解

我也同样出现这样的问题,主要是由于PL/SQL是汉化软件,对中文的支持不是很好,尤其是Oracle的数据库,普通的数据库,汉字占两个字节位,Oracle占三个,所以在输出的时候,PL/SQL软件会判断错误。

解决方案:
1、推荐你更换PL/SQL版本,多尝试几个版本。
2、使用TOAD,似乎支持要好一些(我自己用的就是这个,目前TO Excel后,发现部分×号和φ要出现问题以外,中文汉字暂时还没发现问题)。
3、用英文版软件。中文版,很多汉化水平不高,或者汉化的时候,没有考虑好汉字库的支持,容易出现这个问题。追问TOAD有绿色版本的吗?就是不要装客户端也可以访问Oracle的。PL/SQL可以不装Oracle直接连接数据库的

追答1、TOAD,目前我还没发现绿色版本。就是需要安装客户端才能访问Oracle。
2、我手上的PL/SQL,是需要安装客户端才能访问Oracle的。

乱码的原因,也有可能是由于没安装客户端,Oracle的链接有问题所造成的。
亲,完Oracle这种大型数据库,就不要偷懒了,还是安装客户端吧,没必要安装完整客户端,如果只是提供链接,安装第三个选项的客户端就可以了。(第一个是完整、第二个是精简、第三个我忘记是什么了,就记得,安装第三个选项就能使用了)

plsql查询出来的中文乱码

plsql中文乱码的解决方法是:

1、开始、运行、输入regedit、回车进入注册表,依次单击HKEY_LOCAL_MACHINE、SOFTWARE、ORACLE、KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,如果不是就将它设置为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。

2、设置完注册表后,接下来设置环境变量,计算机(右键)、属性、高级系统设置、高级、环境变量、新建,个人建议新建用户变量,变量名输入:“NLS_LANG”,变量值输入:“SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”。点击确定即可,到此就设置完了。

3、关闭PLSQL,重新启动,中文果然出现了,这样就处理完成了。

plsql查询出来的中文乱码

plsql中文乱码的解决方法是:

1、开始、运行、输入regedit、回车进入注册表,依次单击HKEY_LOCAL_MACHINE、SOFTWARE、ORACLE、KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,如果不是就将它设置为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。

2、设置完注册表后,接下来设置环境变量,计算机(右键)、属性、高级系统设置、高级、环境变量、新建,个人建议新建用户变量,变量名输入:“NLS_LANG”,变量值输入:“SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”。点击确定即可,到此就设置完了。

3、关闭PLSQL,重新启动,中文果然出现了,这样就处理完成了。

plsql developer出现中文乱码。

PLSQL Developer中文显示乱码是因为Oracle数据库所用的编码和PLSQL Developer所用的编码不同所导致的。

解决方法:

1. 先查询Oracle所用的编码

select userenv('language') from al;  

2. 设置PLSQL 的所用编码为第1步查询得到的编码格式

新建一个环境变量:  NLS_LANG

例如:

3. 重启 PLSQL 问题得到解决

为什么plsql查看comments,显示为乱码

一、关于PLSQL无法正确显示中文

刚才下载安装了PLSQL Developer 11 汉化绿色版,执行SQL查询语句,发现显示的数据中只要有中文都会以?表示。经过网上查询得知这是客户端跟服务器的字符集不匹配造成的。解决方法如下:

1、查询oracle server端的字符集。打开PLSQL的查询窗口中输入下面SQL查询语句。

select userenv('language') from al;

得到的服务器字符集为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

2、我的电脑中环境变量界面,在系统变量中新加:

变量名:NLS_LANG

变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

变量值跟服务器查询到的值一致即可。

由此设置步骤可得知此设置不仅仅是针对PLSQL的,所有在客服机上连接ORACLE时显示的中文为?时都必须通过这个方法设置其字符集与服务器上的一致方可正确显示中文内容。

二、PLSQL绿色汉化版设置软件的中文显示

在PLSQL中点击菜单 tools--preferences 在弹出的设置窗口中找到 appearance——language 选择简体中文即可。

三、PLSQL登录时,在登录窗口中的数据库内容应如果设置

这个地方PLSQL其实会读取一个文件,文件的全路径为:ORACLE客服端所在目录 app\Administrator\proct\11.2.0\client_1\Network\Admin\tnsnames.ora

如我的ORACLE客户端安装在D盘则 D:\app\Administrator\proct\11.2.0\client_1\Network\Admin\tnsnames.ora

一般新装的ORACLE客户端没有这个文件,这个文件需要自己配置或通过ORACLE专门的配置程序进行设置。但更简便的方法是直接从其它已配置过的计算机上将这个文件复制过来。

显示全文