`

Oracle 字符集

 
阅读更多
Oracle 全球化

支持全世界的各种语言存储(字符集)
交互语言支持各种语言(sqlplus命令行提示等	)

Language(语言)
Territory(地区)
Character set support(字符集)
排序格式
消息支持
日期和时间支持
数据格式
货币格式

上面的排序格式及日期等格式,受语言设置及地区设置而设置,当然这几种设置也可以各自设置。

字符集是各种字符(varchar等)到二进制数字的编码映射表,告诉计算机如何以二进制存储及取出这些字符。

zhs16gbk: 中国人常用字符集

Unicode 字符集,集合全球语言字符集
UTF8:集合了全球的字符集映射
AL32UTF8 : 相比UTF8,更全面


国家字符集:Nchar,Nvarchar2,Nclob的字段类型的编码格式 AL16UTF16(通常是此格式)
数据库字符集: 存储char,varchar2,clob,long字段类型之外的编码格式


在搞懂Oracle字符集基本原理之前,一定要先分清以下三个概念:
1. Oracle数据库服务器字符集:即Oracle以哪种字符编码存储字符,可以通过以下语句查出数据库字符集的设置。

select parameter,value from nls_database_parameters where parameter like '%CHARACTERSET%';

PARAMETER		VALUE
NLS_CHARACTERSET	AL32UTF8(数据库字符集)
NLS_NCHAR_CHARACTERSET	AL16UTF16(国家字符集)

2. 客户端操作系统字符集:即客户端操作系统以哪种字符编码存储字符。
如果是Windows,可以使用chcp命令获得代码页(code page):

C:\Users\xianzhu>chcp
Active code page: 936

根据该代码页,到微软的官方文档《National Language Support (NLS) API Reference》找到其对应的字符集。

3. 客户端NLS_LANG参数:该参数用于向Oracle指示客户端操作系统的字符集。

SELECT * FROM V$NLS_PARAMETERS;

SELECT USERENV('language') FROM DUAL;

设置客户端nls_lang 的级别

启动参数->环境参数->alter session 命令->sql 函数
编辑注册表
regedit.exe->hkey_local_machine->software->oraclehome



有了以上3个基本概念之后,我来阐述一下Oracle字符集转换的基本原则:
1.设置客户端的NLS_LANG为客户端操作系统的字符集
2.如果数据库字符集等于NLS_LANG,数据库和客户端传输字符时不作任何转换
3.如果它们俩不等,则需要在不同字符集间转换,只有客户端操作系统字符集是数据库字符集子集的基础上才能正确转换,否则会出现乱码。

当执行一个insert语句,首先网络上只能传递二进制数据,客户端操作系统按照本身的字符集转化为二进制,(比如gbk)
将二进制数据传给Oracle,Oracle通过客户端的nls_lang得知客户端操作系统的字符集,
Oracle服务器根据客户端的字符集先转化,后根据服务器字符集进行存储.(比如UTF-8)

若查询时,若客户端的字符集与服务器端的字符集不一样,Oracle会自动根据客户端的字符集进行转换。(根据客户端的nls_lang环境变量)

注意:客户端的字符集,必须要跟客户端服务器的字符串格式一样。不然在Oracle服务器端进行转换时存在问题。
Oracle服务器存在多种字符集,所以客户端与服务器端转化字符集没问题。
数据库服务器字符集,必须要满足能够存储需要的数据的字符集。


export
依赖于客户端的nls_lang,直接根据客户端的nls_lang进行生产dmp文件。
文件中会记录此文件的格式。


import
根据包里面的格式进行导入

要保证export导出的格式,跟导入的数据库保持一致。

 

分享到:
评论

相关推荐

    Oracle 字符集详解

    Oracle字符集是数据库管理系统Oracle中的一个重要概念,它决定了数据库如何存储和处理文本数据。字符集不仅影响着数据的准确性和一致性,还与全球化应用、数据迁移和数据交换密切相关。本篇将深入探讨Oracle字符集的...

    oracle 字符集修改命令

    ### Oracle字符集修改命令详解 #### 一、引言 在Oracle数据库的管理与维护过程中,字符集的正确设置对于确保数据的正确显示与处理至关重要。由于不同的地区和语言环境对于字符编码的需求各异,因此有时可能需要...

    Oracle字符集专题

    Oracle字符集专题是一个深入探讨Oracle数据库字符集配置、管理和常见问题解决的综合资源。这个专题涵盖了从基础概念到实际操作的多个方面,旨在帮助用户全面理解并有效处理与Oracle字符集相关的各种问题。 首先,...

    oracle 字符集设置

    本文将深入探讨Oracle字符集的相关概念,包括如何通过设置环境变量来修改客户端字符集,以此解决因字符集差异而导致的数据转换或损耗问题。 #### Oracle字符集的重要性 Oracle数据库通过字符集支持多种语言环境下...

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

    ### Oracle字符集的查看与客户端字符集的修改 #### 一、Oracle字符集的基本概念 在Oracle数据库系统中,字符集(charset)是用于表示文本数据的编码方式。正确设置和管理字符集对于确保数据的一致性和正确性至关重要...

    oracle字符集快速修改注册表

    总之,Oracle字符集的正确选择和管理对于数据库的正常运行至关重要。通过快速修改注册表,我们可以便捷地在不同字符集之间切换,满足与不同数据库的兼容性需求。在日常工作中,理解并掌握字符集的相关知识,能有效...

    jdbc连接oracle字符集不同出现乱码

    ### JDBC 连接 Oracle 字符集不同导致乱码问题解析及解决方案 #### 问题背景 在使用 JDBC(Java Database Connectivity)连接 Oracle 数据库时,可能会遇到一个常见的问题:从远程 Oracle 数据库获取的数据出现乱码...

    Oracle 修改字符集

    #### 一、理解Oracle字符集 1. **字符集定义**:字符集(Character Set)是一组符号及编码规则的集合,用于存储和处理文本数据。 2. **Oracle中的字符集类型**: - **国家字符集**(National Character Set):如`...

    Oracle 字符集的查看和修改

    ### Oracle字符集的查看与修改详解 #### 一、Oracle字符集概述 Oracle数据库系统支持多种字符集,以便处理各种语言和地区的信息。字符集的选择对于数据的存储和处理至关重要,尤其是在全球化环境中,需要处理多种...

    更改oracle 字符集

    更改oracle 字符集,

    熟知Oracle字符集

    ### 知识点详解:“熟知Oracle字符集” #### 引言 Oracle的多语言支持功能,尤其是字符集的管理,是确保数据正确显示和存储的关键因素。字符集问题常常成为数据库管理和应用程序开发中的一个难点,尤其是在涉及...

    ORACLE 字符集简介

    ### ORACLE 字符集简介 #### 一、字符集基本概念 **ORACLE数据库字符集**,也称为Oracle全球化支持...通过本文的介绍,希望能够帮助读者更好地理解和掌握Oracle字符集的相关知识,从而在实际应用中更加得心应手。

    oracle字符集资料

    Oracle字符集是数据库管理系统Oracle中用于存储和处理文本数据的关键组件。它定义了数据库能够识别和存储的不同字符的集合,包括字母、数字、符号以及特殊字符。深入理解Oracle字符集对于数据库管理员、开发人员和...

    Oracle字符集问题

    Oracle字符集是数据库管理系统Oracle中处理字符数据的关键组成部分,它定义了如何存储和显示各种语言的字符。Oracle字符集问题通常出现在数据库创建、数据输入、数据传输或在不同字符集的系统之间交互时。理解Oracle...

    ORACLE 字符集总结

    本文将深入探讨Oracle字符集的原理、查询方法以及如何处理字符集不一致的问题。 首先,Oracle字符集是一个定义了字节数据解释方式的集合,它具有不同的大小和包容性。Oracle支持多种国家语言,允许用户以本地化的...

    oracle字符集说明

    Oracle字符集是数据库系统中用于表示文本数据的一种编码方式,它是Oracle数据库为了支持多种语言和文化环境而设计的重要特性。Oracle字符集不仅包含了常见的ASCII字符,还包含了各种国家和地区的特殊字符,使得用户...

Global site tag (gtag.js) - Google Analytics