`

pl/sql developer 客户端乱码

阅读更多
select * from v$nls_parameters
查询nls的参数,获得数据库服务器端的字符编码
NLS_LANGUAGE
NLS_CHARACTERSET

右击“我的电脑” 属性-》高级--》环境变量
NLS_LANG = NLS_LANGUAGE.NLS_CHARACTERSET
设入查询的值就可以
引用

查看可选的数据库字符集:
select *  from v$nls_valid_values;

查看当前数据库字符集配置:
Select userenv('language') from dual;或者
select * from v$nls_parameters;
或者:select * from sys.props$


引用


原因:

出现中文乱码的主要原因是字符集不同。

在 Oracle中,我们关心三个地方的字符集:

l Oracle服务器内部的字符集

l NLS_LANG变量里保存的字符集

l 客户端应用的字符集

Oracle服务器内部的字符集

这是 Oracle数据库存储数据使用的字符集。

在 Oracle中可能使用

Select userenv('language') from dual;

查看。



NLS_LANG变量里保存的字符集

这个是 Oracle设置的一个变量。

在 Windows中,这个变量保存在注册表中:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0保存着NLS_LANG变量。



在 Unix/Linux中,则需要自己进行设置了。我本人是在.profile里面加上

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_LANG





客户端应用的字符集

使用 Oracle里数据或者向Oracle提供数据的应用程序。



如果 Oracle 服务器内部的字符集 和 NLS_LANG变量里保存的字符集 相同,在进行Oracle查询时,就会将Oracle中的数据直接查出来,返回给查询用户。进行Oracle的插入操作,就会直接将插入的数据保存进数据库中。

但是如果不同的话,Oracle查询时,会根据这两个字符集的一个映射,将数据库中的数据作一个转换,再返回给查询用户。进行插入操作时,也会根据映射,将插入的数据作一个转换,再插入数据库。这也是产生乱码的原因,这一层转换,把数据都给转乱了。
解决办法:

客户端字符集设置的和数据库端的字符集一样


[Q]怎么样查看数据库字符集
[A]数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
  客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
  会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
  客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
  字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是 American_America.zhs16gbk。
分享到:
评论

相关推荐

    Oracle客户端PL/SQL 中文乱码解决

    然而,当用户在使用Oracle客户端进行PL/SQL开发时,经常遇到一个棘手的问题——中文乱码。这个问题通常出现在查询结果、日志输出或者交互式输入时,给数据库操作带来不便。本文将深入探讨这个问题,并提供解决方案。...

    pl/sql developer 中文版

    PL/SQL Developer是一款专为Oracle数据库开发设计的强大集成开发环境(IDE),主要用于编写、调试、测试和管理PL/SQL代码。这款工具以其易用性、高效性和全面的功能深受Oracle数据库开发人员的喜爱。"绿色版"通常指...

    pl/sql汉化

    PL/SQL Developer是一款由Allround Automations开发的专业Oracle数据库管理工具,主要用于编写、调试和执行PL/SQL代码。"PL/SQL汉化"是指将PL/SQL Developer的默认英文界面翻译成中文,以便于中文用户更方便地使用该...

    PL/SQL不安装Oracle连接数据库

    用户变量中新建:(不进行此操作,容易出现PL/SQL查询数据中文乱码) 变量名:nls_lang 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 系统变量Path中添加如D:\oracle\instantclient\instantclient 4、PLSQl...

    plsql乱码解决办法

    PL/SQL 乱码问题是 Oracle 数据库开发中常见的问题之一,当我们使用 PL/SQL Developer 查询数据时,可能会遇到中文乱码的问题。下面我们将详细介绍 PL/SQL 乱码的解决办法。 问题描述 在使用 PL/SQL Developer ...

    PLSQL Developer 8.0.3.1510

    这款工具由Allround Automations公司开发,主要用于编写、测试和调试PL/SQL代码,即Oracle数据库中的过程化SQL语言。8.0.3.1510是该软件的一个特定版本,可能包含了性能优化、新功能和修复的bug。 在PLSQL ...

    plsql带oracle自带操作工具(必须两个都用)

    在解决乱码问题上,你需要确保PL/SQL Developer的字符集设置与你的Oracle数据库字符集一致。这通常可以在PL/SQL Developer的首选项设置中进行修改。同时,检查`NLS_LANG`环境变量是否正确设置,因为这会影响客户端与...

    PLSQL Developer 中文乱码的解决1

    当数据库服务器端的NLS_CHARACTERSET被更改,而客户端(如PL/SQL Developer)的配置未相应调整时,就会出现乱码现象。 在遇到PL/SQL Developer中文乱码问题时,可以按照以下步骤来解决: 1. **检查服务器端字符集*...

    连接oracle的客户端工具plsqldev

    在连接数据库时,确保PL/SQL Developer使用的字符集与数据库兼容,以避免乱码问题。可以在PL/SQL Developer的首选项中设置字符集,一般设置为`AL32UTF8`,这是一个广泛支持的多语言字符集。 2. **`NLS_LANG`环境变量...

    不安装Oracle就能使用plsql的方法

    使用 instantclient-basic 包和 PL/SQL Developer,我们可以不安装 Oracle 客户端而使用 PL/SQL。这对开发者来说非常方便,因为我们不需要安装庞大的 Oracle 客户端程序。同时,instantclient-basic 包也非常小巧,...

    plsql在64位系统安装步骤

    plsql在64位系统安装步骤 PL/SQL Developer是Oracle数据库的开发工具,它提供了强大的开发和调试功能。...但是,通过这些步骤,PL/SQL Developer可以正常连接到64位的Oracle数据库,并解决中文乱码的问题。

    PLSQL64机安装

    本文将针对“PLSQL64机安装”这一主题,详细解释如何在Windows 7 64位操作系统上安装和配置32位的PL/SQL Developer,使其能够与64位Oracle 11g数据库进行连接,并解决中文乱码问题。 首先,PL/SQL Developer是一款...

    plsql操作数据库工具

    PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加...

    plsql汉化包

    PL/SQL Developer是一款由Allround Automations公司开发的专门用于Oracle数据库管理的集成开发环境(IDE),它提供了编写、调试、测试和优化PL/SQL代码的功能。"plsql汉化包"指的是为这款软件提供的中文语言包,使得...

    MAC配置EBS.docx

    MAC配置EBS是指在Mac系统下使用Wineskin安装PL/SQL Developer的详细步骤,并解决了数据乱码问题,同时也提供了学习Oracle EBS系统和访问EBS Java Form的解决方案。 一、Wineskin安装PL/SQL Developer 1. 下载...

    64位Oracle_11g+32位plsql

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,而PL/SQL Developer是用于开发和管理Oracle数据库的集成开发环境。本文将详细介绍如何在64位操作系统上安装Oracle 11g R2数据库,以及如何配置32位的PL/SQL ...

    PLSQL显示乱码、导出问题的解决方法

    PLSQL显示乱码、导出问题的解决方法

    PLSQL及乱码解决

    1. 字符集设置:确保数据库、客户端工具(如SQL*Plus、PL/SQL Developer)以及操作系统都使用相同的字符集,或者至少是相互兼容的字符集。例如,GBK、UTF-8等都是常用的字符集,它们对中文字符的支持情况不同。 2. ...

    oracle oci 解决64位乱码

    Oracle OCI(Oracle Call Interface)是Oracle数据库提供的一种...通过理解并应用以上知识点,你应该能够有效地解决64位环境下Oracle OCI的乱码问题,并成功地使用64位Navicate和PL/SQL Developer连接到Oracle数据库。

    使用plsqldev对oracle数据库做备份还原操作

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

Global site tag (gtag.js) - Google Analytics