`
berdy
  • 浏览: 513660 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ORACLE客户端的字符编码设置

阅读更多
  今天在利用PL/SQL DEVELOPER 往oracle中导入日文数据时,总是出现乱码。我想肯定是客户端和服务端的字符编码
设置不一致导致的。上网google得知oralce字符编码设置和查询的一些方法,记录如下:

1. NLS_LANG 参数组成
NLS_LANG参数由以下部分组成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>

NLS_LANG各部分含义如下:
LANGUAGE指定:
-Oracle消息使用的语言
-日期中月份和日显示
TERRITORY指定
-货币和数字格式
-地区和计算星期及日期的习惯
CHARACTERSET:
-控制客户端应用程序使用的字符集
通常设置或者等于客户端(如Windows)代码页
或者对于unicode应用设置为UTF8

在Windows上查看当前系统的代码页可以使用chcp命令:
E:\>chcp
活动的代码页: 936

代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接:
http://www.microsoft.com/globaldev/reference/dbcs/936.htm

2. 查看 NLS_LANG 的方法
Windows使用:

echo %NLS_LANG%
如:
E:\>echo %NLS_LANG%
AMERICAN_AMERICA.ZHS16GBK

Unix使用:

env|grep NLS_LANG
如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK

Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多个ORACLE_HOME时系统编号。

3. 查看数据库当前字符集参数设置
SELECT * FROM v$nls_parameters;

4. 查看数据库可用字符集参数设置
SELECT * FROM v$nls_valid_values;

5. 客户端 NLS_LANG 的设置方法
Windows:
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通过修改注册表键值永久设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG

Unix:
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export NLS_LANG="Simplified Chinese_china".ZHS16GBK
可以编辑 bash_profile 文件进行永久设置
vi .bash_profile
NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG
# 使 bash_profile 设置生效
source .bash_profile


分享到:
评论

相关推荐

    oracle字符集的查看和client字符集的修改

    #### 三、修改Oracle客户端字符集 当需要在不同的操作系统或者不同的客户端应用之间传输数据时,可能需要修改Oracle客户端的字符集设置以匹配服务器端的字符集。 1. **在Windows操作系统中修改**: - 打开注册表...

    Oracle切换客户端字符集

    1. 数据导入导出:在进行数据导入或导出时,确保源和目标数据库的字符集匹配,或者在转换过程中正确设置客户端字符集,以避免数据丢失或乱码。 2. 应用程序连接:当应用程序连接到Oracle数据库时,可能需要根据应用...

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

    这通常与字符编码设置有关。Oracle数据库支持多种字符集,如AL32UTF8(Unicode UTF-8)和ZHS16GBK(简体中文GBK)。如果客户端和服务器端的字符集不匹配,或者客户端的环境变量(如NLS_LANG)没有正确设置,就可能...

    delphi连接oracle(免装oracle客户端)测试

    当开发Delphi应用程序时,有时需要与Oracle数据库进行交互,但传统的连接方式可能需要安装完整的Oracle客户端,这会占用大量系统资源且安装过程复杂。本篇文章将详细介绍如何在Delphi中实现连接Oracle数据库,无需...

    oracle数据库中文乱码问题解决方案.docx

    这种问题通常是由于数据库服务器端和客户端字符编码设置不正确引起的。本文将提供一个详细的解决方案,包括查看和修改数据库服务器端的字符编码、查看和修改客户端字符集的设置方法。 一、查看和修改数据库服务器端...

    Oracle客户端:instantclient-basic-nt-19.8.0.0.0dbru.zip

    1、下载并解压Oracle客户端(要记住解压路径) instantclient-basic-nt-19.8.0.0.0dbru.zip(我电脑上用的是这个版本连接的Oracle11g) 3、配置window操作系统环境变量(新建以下两个变量) 此电脑(右键)→属性→...

    不安装oracle客户端C#程序连接数据库的所需文件

    在.NET环境中,C#程序员经常需要与Oracle数据库进行交互,但是传统的做法是通过安装Oracle客户端来实现。然而,这样的方式可能会增加客户端系统的负担,占用额外的磁盘空间,并且安装过程繁琐。为了解决这个问题,...

    Oracle10g字符集设置,解决中文乱码

    字符集是一种定义了字符编码的规则,用于存储和显示文本。在Oracle中,常见的字符集包括AL32UTF8(支持Unicode的UTF-8编码)、ZHS16GBK(简体中文GBK编码)和ZHS32EUC(简体中文EUC-CN编码)等。不同的字符集适用于...

    oracle 中文字符集问题

    例如,在Unix环境下,可以通过设置`NLS_LANG=simplifiedchinese_china.zhs16gbk`并导出此变量来指定客户端字符集。 #### 结论 正确理解和配置Oracle数据库的字符集对于确保数据完整性和跨平台兼容性至关重要。无论...

    Oracle字符集专题

    专题中的"Oracle字符集(1).txt"可能涵盖了字符集的基本概念和分类,包括单字节字符集(如ASCII)和多字节字符集(如UTF8),以及如何通过NLS_LANG环境变量设置客户端字符集。 "Oracle字符集(2).txt"可能涉及...

    oracle客户端安装1

    - `NLS_LANG`:设定字符集,可以是`AMERICAN_AMERICA.ZHS16GBK`(简体中文GBK编码)或`AMERICAN_AMERICA.AL32UTF8`(UTF-8编码),具体取决于你的需求。 - `LD_LIBRARY_PATH`:添加Oracle客户端库的路径。 - `...

    Oracle 字符集详解

    常见的Oracle字符集有AL32UTF8(支持Unicode的UTF-8编码)、WE8ISO8859P1(西欧字符集)、ZHS16GBK(简体中文GB18030编码)等。 六、多语言环境下的字符集配置 在处理多语言数据时,Oracle提供了NLSSORT参数来调整...

    oracle字符集快速修改注册表

    Oracle数据库系统支持多种字符集,以适应不同地区的语言和特殊字符需求。字符集定义了数据库如何存储和处理字符,对于多语言...在日常工作中,理解并掌握字符集的相关知识,能有效避免因字符编码问题引发的诸多困扰。

    oracle英文字符集插入到中文字符集

    "Oracle英文字符集插入到中文字符集"的主题聚焦于如何在不同字符集之间进行有效转换,以便在不修改客户端环境变量的情况下,实现数据的正确存储和检索。 Oracle数据库系统支持多种字符集,字符集决定了数据库如何...

    ORACLE_CHAR_ToolS(ORACLE字符转换)

    "ORACLE_CHAR_ToolS"是一个专门针对这类问题的工具集合,它包含了两个注册表文件,用于帮助用户解决Oracle数据库中的字符编码问题。 首先,我们来理解一下字符集的概念。字符集是计算机系统中用于表示文本的一组...

    修改oracle 数据服务器编码

    修改Oracle服务器编码通常涉及到数据库创建时的选择、已有数据库的字符集转换以及客户端连接的字符集设置。 首先,我们需要理解Oracle中的字符集概念。全局字符集(Database Character Set)定义了数据库中所有数据...

    不用安装oracle客户端也可以用plsql连接远程oracle

    - NLS_LANG环境变量用于设置Oracle数据库的国家、语言和字符集,确保与远程数据库匹配,否则可能会导致字符编码问题。例如,设置为`NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK`以支持简体中文。 6. **PL/SQL ...

    Oracle 12C 修改编码集

    Oracle 12C修改编码集的步骤是为了确保数据正确显示,避免乱码问题。以下是一些关键知识点和解决方法: 1. **查看当前数据库字符集**: 使用`SELECT userenv('language') FROM dual;`查询当前会话的语言环境和字符...

Global site tag (gtag.js) - Google Analytics