Oracle的字符集命名遵循以下命名规则:

<Language><bit size><encoding>
    AL32UTF8/AL16UTF16/ZHS16GBK(AL=ALL)

Oracle客户端字符集(NLS_LANG):

Oracle使用的系统环境变量,主要用于传输过程中进行转换判断,格式为<language>_<territory>.<character_set>,如:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
     language控制消息、日期、月份等的显示格式,territory会影响默认日期、货币值、数字等的显示格式,character_set控制客户端应用使用的字符集。

数据库字符集(NLS_CHARACTERSET):

在创建数据库实例时设置,控制数据库的字符集。

国家字符集(NLS_NCHAR_CHARACTERSET):

在创建数据库实例时设置,控制数据库中NCHAR, NVARCHAR2, NCLOB等类型数据

查询Oracle相关字符集设置:

--数据库字符集
SELECT * FROM NLS_DATABASE_PARAMETERS;--实例字符集环境
SELECT * FROM NLS_INSTANCE_PARAMETERS;--会话字符集环境
SELECT * FROM NLS_SESSION_PARAMETERS;--客户端字符集
SELECT * FROM V$NLS_PARAMETERS;
SELECT USERENV('language') FROM DUAL;

字符/字符集/字符编码介绍:

字符(Character):
    字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。字符是电子计算机或无线电通信中字母、数字、符号的统称,其是数据结构中最小的数据存取单位,通常由8个二进制位(一个字节)来表示一个字符。

字符集(Character Set):
    字符集是多个字符的集合。字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。
    UNICODE:
        Unicode译为统一码,也叫万国码、单一码是计算机科学领域里的一项业界标准,是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。
        Unicode字符集可以简写为UCS(Unicode Character Set)。UCS-2是用两个字节来表示代码点,其取值范围为 U+0000~U+FFFF。UCS-4是用四个字节表示代码点,取值范围为范围为U+00000000~U+7FFFFFFF,其中 U+00000000~U+0000FFFF和UCS-2是一样的。
        Unicode编码规则包括:UTF-8、UTF-16、UTF-32。

字符编码(Character encoding):
    字符编码也称字集码,是编码规则,把字符集中的字符编码为指定集合中某一对象例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。
    ASCII:
        ASCII((American Standard Code for Information Interchange):美国信息交换标准代码) 是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。
        它是一个7位的编码标准(剩下的1位二进制为0),最后一次更新则是在1986年,包括33个控制代码(0~31和127)、空格(32)、10个数字(48~57)、26个大写字母(65~90)、26个小写字母(97~122)和32个符号,共128个代码。其中33个字符无法显示(一些终端提供了扩展,使得这些字符可显示为诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符。控制字符的用途主要是用来操控已经处理过的文字。在33个字符之外的是95个可显示的字符。用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。
    ANSI:
        ANSI((American National Standards Institute):美国国家标准学会) 是一种字符代码,为使计算机支持更多语言,通常使用 0x00~0x7f范围的1个字节来表示1个英文字符。超出此范围的使用0x80~0xFFFF来编码,即扩展的ASCII编码。
        不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为ANSI编码。是在ASCII基础上进行的扩充。
        ANSI并不是某一种特定的字符编码,而是在不同的系统中表示不同的编码,在简体中文系统中它是GB18030,在韩文系统中它是EUC-KR。不同ANSI编码之间互不兼容。
    UTF(Unicode Transformation Formats)系列:    
        UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。由于较小值的编码点一般使用频率较高,直接使用Unicode编码效率低下,大量浪费内存空间。UTF-8就是为了解决向后兼容ASCII码而设计,Unicode中前128个字符,使用与ASCII码相同的二进制值的单个字节进行编码,而且字面与ASCII码的字面一一对应,这使得原来处理ASCII字符的软件无须或只须做少部分修改,即可继续使用。
        UTF-8使用一至六个字节为每个字符编码(尽管如此,2003年11月UTF-8被RFC 3629重新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF,也就是说最多四个字节):
            1.128个US-ASCII字符只需一个字节编码(Unicode范围由U+0000至U+007F)。
            2.带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要两个字节编码(Unicode范围由U+0080至U+07FF)。
            3.其他基本多文种平面(BMP)中的字符(这包含了大部分常用字,如大部分的汉字)使用三个字节编码(Unicode范围由U+0800至U+FFFF)。
            4.其他极少使用的Unicode 辅助平面的字符使用四至六字节编码(Unicode范围由U+10000至U+1FFFFF使用四字节,Unicode范围由U+200000至U+3FFFFFF使用五字节,Unicode范围由U+4000000至U+7FFFFFFF使用六字节)
    
        UTF-16是Unicode字符编码五层次模型的第三层:字符编码表的一种实现方式。即把Unicode字符集的抽象码位映射为16位长的整数(即码元)的序列,用于数据存储或传递。
        UTF-16可看成是UCS-2的父集。在没有辅助平面字符(surrogate code points)前,UTF-16与UCS-2所指的是同一的意思。

UTF-32是32位Unicode转换格式的缩写。UTF-32是一种用于编码Unicode的协定,该协定使用32位比特对每个Unicode码位进行编码。与其他可变长度的Unicode转换格式(UTF)相比,UTF-32编码长度是固定的,UTF-32中的每个32位值代表一个Unicode码位,并且与该码位的数值完全一致。
        UTF-32和UCS4能表示的字符是相同的。

Oracle字符集相关知识相关推荐

  1. 关于 Oracle ACFS 相关知识的简单学习

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了 ...

  2. ORACLE字符集基础知识

    概念描叙    ORACLE 数据库有国家字符集(national character set)与数据库字符集(database character set)之分.两者都是在创建数据库时需要设置的.国 ...

  3. [转]oracle临时表相关知识

    回复: 临时表存放在哪儿? DML statements on temporary tables do not generate redo logs for the data changes. How ...

  4. oracle数据库相关知识,Oracle数据库相关知识点复习

    一.Oracle数据库中常用的数据类型varchar2(长度)可变长字符串char(长度)定长number()表示整数或者浮点数number(8) number(8,2)clog字符的大对象blog二 ...

  5. SQL Server 与 MySQL 中排序规则与字符集相关知识的一点总结

    字符集&&排序规则 字符集是针对不同语言的字符编码的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的规则给字符进行编码.排序规则则是在特定字符集 ...

  6. Oracle字符集问题总结

    经常有同事咨询oracle数据库字符集相关的问题,如在不同数据库做数据迁移.同其它系统交换数据等,常常因为字符集不同而导致迁移失败或数据库内数据变成乱码.现在我将oracle字符集相关的一些知识做个简 ...

  7. oracle共享池的结构,Oracle 10g内存结构之共享池的相关知识及使用简介

    Oracle 10g内存结构之共享池的相关知识及使用简介 之前我们介绍了:Oracle 10g内存结构之系统全局区简介,本文我们接着介绍一下Oracle 10g内存结构之共享池的相关知识,接下来就让我 ...

  8. Oracle 字符集的查看和修改

    一.什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库工 ...

  9. Oracle字符集的查看查询和Oracle字符集的设置修改

    本文主要讨论以下几个部分:如何查看查询oracle字符集. 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题. 一.什么是Oracle字符集 Oracle字符集是 ...

最新文章

  1. 脑电分析系列[MNE-Python-2]| MNE中数据结构Raw及其用法简介(更新)
  2. '+' 拼接字符串引起的小事故
  3. 【存储知识学习】第三章磁盘原理与技术3.8并行传输和串行传输and3.9 IOPS和带宽-《大话存储》阅读笔记
  4. 向预训练进一步:掩码式非自回归模型训练
  5. Web前端笔记-修改element ui中表格样式(透明、去横纵线等含修改思路)
  6. IDS与IPS的区别(HIDS、NIDS)
  7. 369寝室(数组、模拟)
  8. python 二维列表切片_Python中mutable与immutable和二维列表的初始化问题
  9. redis用zset做延时消息
  10. XNA实现不停循环的路的效果
  11. python socket tcp实战_Python socket.TCP_MAXSEG属性代码示例
  12. Java中synchronized与Lock的区别
  13. 如何从完好的数据文件恢复oracle数据库
  14. 微信小程序如何使用阿里矢量库
  15. ftp命令及dos中操作ftp命令
  16. 提权、渗透、经验、技巧总结大全三
  17. 文件管理大师android,文件管理大师
  18. WinRAR压缩软件去除广告
  19. PHP实验报告 点餐系统,点餐系统软件工程实验报告.doc
  20. Eclipse “cannot be resolved to a type”

热门文章

  1. jsp连接数据库大全
  2. 老师教我们用计算机画画,感恩老师的广播稿200字
  3. 重装电脑系统和电脑使用习惯建议
  4. 自己动手写搜索引擎(常搜吧历程五#解析文档之XML#)(Java、Lucene、hadoop)
  5. 你需要改掉的Python开发习惯(五)
  6. Hibernate大师Gavin King
  7. 在Vivado下利用Tcl实现IP的高效管理
  8. 程序人生 - 开发程序不写代码,而是靠拼图?
  9. 通过B-S公式计算期权隐含波动率
  10. oracle完整的新建用户,oracle新建用户