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。
分享到:
相关推荐
由于实际内容部分呈现为乱码,无法直接解读具体内容,因此这里将根据标题、描述以及标签来进行有关PL/SQL Developer的一些基本知识点的阐述。 ### PL/SQL Developer简介 PL/SQL Developer是一款专为Oracle数据库...
然而,当用户在使用Oracle客户端进行PL/SQL开发时,经常遇到一个棘手的问题——中文乱码。这个问题通常出现在查询结果、日志输出或者交互式输入时,给数据库操作带来不便。本文将深入探讨这个问题,并提供解决方案。...
PL/SQL Developer是一款专为Oracle数据库开发设计的强大集成开发环境(IDE),主要用于编写、调试、测试和管理PL/SQL代码。这款工具以其易用性、高效性和全面的功能深受Oracle数据库开发人员的喜爱。"绿色版"通常指...
PL/SQL Developer是一款由Allround Automations开发的专业Oracle数据库管理工具,主要用于编写、调试和执行PL/SQL代码。"PL/SQL汉化"是指将PL/SQL Developer的默认英文界面翻译成中文,以便于中文用户更方便地使用该...
用户变量中新建:(不进行此操作,容易出现PL/SQL查询数据中文乱码) 变量名:nls_lang 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 系统变量Path中添加如D:\oracle\instantclient\instantclient 4、PLSQl...
PL/SQL 乱码问题是 Oracle 数据库开发中常见的问题之一,当我们使用 PL/SQL Developer 查询数据时,可能会遇到中文乱码的问题。下面我们将详细介绍 PL/SQL 乱码的解决办法。 问题描述 在使用 PL/SQL Developer ...
PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们一一介绍。 导出步骤: ...
这款工具由Allround Automations公司开发,主要用于编写、测试和调试PL/SQL代码,即Oracle数据库中的过程化SQL语言。8.0.3.1510是该软件的一个特定版本,可能包含了性能优化、新功能和修复的bug。 在PLSQL ...
通常情况下,使用PL/SQL Developer连接Oracle数据库时,需要先安装完整的Oracle客户端,这包括了一个JDK以及一系列的环境变量设置,过程相对繁琐,且容易对系统的其他环境造成影响。然而,通过使用Oracle Instant ...
- 此步骤确保PL/SQL Developer能够正确识别Oracle客户端库,从而与Oracle 11g服务端进行通信。 #### 五、修改 tnsnames.ora 文件 - 修改`tnsnames.ora`文件中的内容,确保连接到Oracle服务的名称和参数正确无误。 -...
当数据库服务器端的NLS_CHARACTERSET被更改,而客户端(如PL/SQL Developer)的配置未相应调整时,就会出现乱码现象。 在遇到PL/SQL Developer中文乱码问题时,可以按照以下步骤来解决: 1. **检查服务器端字符集*...
在解决乱码问题上,你需要确保PL/SQL Developer的字符集设置与你的Oracle数据库字符集一致。这通常可以在PL/SQL Developer的首选项设置中进行修改。同时,检查`NLS_LANG`环境变量是否正确设置,因为这会影响客户端与...
在连接数据库时,确保PL/SQL Developer使用的字符集与数据库兼容,以避免乱码问题。可以在PL/SQL Developer的首选项中设置字符集,一般设置为`AL32UTF8`,这是一个广泛支持的多语言字符集。 2. **`NLS_LANG`环境变量...
使用 instantclient-basic 包和 PL/SQL Developer,我们可以不安装 Oracle 客户端而使用 PL/SQL。这对开发者来说非常方便,因为我们不需要安装庞大的 Oracle 客户端程序。同时,instantclient-basic 包也非常小巧,...
### Oracle 11g 与 32 位 PL/SQL Developer 在 Win8.1/7 上的配置 #### 概述 本文旨在详细介绍如何在Windows 8.1/7系统上配置64位Oracle 11g数据库与32位的PL/SQL Developer之间的连接。这种配置常见于开发环境,...
plsql在64位系统安装步骤 PL/SQL Developer是Oracle数据库的开发工具,它提供了强大的开发和调试功能。...但是,通过这些步骤,PL/SQL Developer可以正常连接到64位的Oracle数据库,并解决中文乱码的问题。
1. **打开PL/SQL Developer**:首先启动PL/SQL Developer软件。 2. **进入设置页面**:点击菜单栏中的“Tools”(工具),然后选择“Preferences”(首选项)。 3. **选择用户界面设置**:在弹出的首选项窗口中,...