`
dowhathowtodo
  • 浏览: 780310 次
文章分类
社区版块
存档分类
最新评论

Oracle字符集的基本知识

阅读更多

1. Oracle 字符集定义

Oracle 字符集:按照特定的字符编码方案,对一组特定的字符,符号,分别赋予不同数值编码的集合。

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

<Language><bit size><encoding>

即: <语言><比特位数><编码>

例如:

1. US7ASCII其中US代表America地区,7位,ASCII字符编码。它是 Oracle数据库最早支持的编码方案

2. ZHS16GBK 表示采用GBK编码格式、16位(两个字节)简体中文字符。2个字节存放一个汉字。

3. zhs16cgb231280 表示采用cgb231280编码格式、16位(两个字节)简体中文字符。2个字节存放一个汉字。

4. AL32UTF8 其中AL代表ALL,指适用于所有语言。32位,3个字节存放一个亚洲语言字符。UTF-8,8位Unicode编码方式。

5. AF16UTF16 其中AF代表ALL Fix, 适用于所有语言。16位,所有的字符以2个字节存放。UTF-16,16位Unicode编码方式。

2. 字符编码方案

2.1 单字节编码

单字节编码有7位字符集和8位的字符集。特点是,每个字符用一个字节表示。

1)单字节7位字符集,最常用的字符集为US7ASCII。

2)单字节8位字符集,适合于欧洲大部分国家 例如:WE8ISO8859P1(西欧、8位、ISO标准8859P1编码)

2.2 多字节编码

多字节编码有变长多字节编码和定长多字节编码。

1)变长多字节编码,它是指某些字符用一个字节表示,某些字符可以用2个或多个字节表示。例如,在一段文本中,既有欧美字符,也有亚洲语言字符,此时为了支持对亚洲语言的支持,我们需要用变长多字节编码。总之,变长多字节编码常用于对亚洲语言的支持, 例如日语、汉语、印地语等。常用的编码有:AL32UTF8,zhs16cgb231280。

例如:Oracle数据库指定了AL32UTF8字符集,并且创建了一个varchar(20)字段。如果要存放汉字的话,能存放几个呢?

由于指定了AL32UTF8字符集,因此,3个字节存放一个汉字。此外,创建了varchar(20)字段,表示varchar类型字段,最多能存储20个字节的汉字。因此我们可以推断出,这个字段最多能存放6个汉字。

2)定长多字节编码,每一个字符都使用固定长度字节的编码方案,仅用于国家字符集。目前oracle唯一支持的定长多字节编码是AF16UTF16。

3. Unicode 编码

Unicode 编码涵盖了全世界所有已知字符的编码,是一种变长或多长的多字节编码方式。换句话说,它支持单字节和多字节的编码方式。目前Unicode有3.0版本和5.0版本。Unicode 5.0相比Unicode3.0 ,又增加了一些新的补充字符。Oracle unicde 编码方式有两类:一个是UTF-8, 另一个是UTF-16。

1) UTF-8是Unicode 8位的编码方式,它是一种变长多字节的编码,这种编码方式可以用1,2,3个字节来表示一个Unicode字符。例如:AL32UTF8,UTF8、UTFE。

2) UTF-16是Unicode 16位的编码方式,它是一种定长多字节的编码,这种编码只能用2个字节来表示一个Unicode字符。例如:AF16UTF16。

4. 字符集超级

一种字符集(字符集A)的编码数值包含所有一种字符集(字符集B)的编码数值,且两种字符集相同编码数值代表相同的字符时,则字符集A是字符集B的超级,或字符集B是字符集A的集。Oracle8i和oracle9i方文档资料集-超级对照表(subsetsupersetpairs),例如:WE8ISO8859P1是WE8MSWIN1252的集。由于US7ASCII是最早的Oracle数据库编码格式,因此有多 字符集是US7ASCII的超集,例如WE8ISO8859P1、ZHS16CGB231280、ZHS16GBK都是US7ASCII的超集。

5. Oracle数据库字符集(Oracle服务器端字符集)

Oracle服务器端字符集是在创建数据库时候指定的,在创建后通常不能更改。在创建数据库时,可以指定库字符集和国家字符集。

1)库字符集,它是Oracle基本的字符集,它支持单字节字符集,变长多字节字符集。作用是:

  • 用来存储CHAR, VARCHAR2,BLOB, LONG等类型数据。
  • 用来标识表名,列名,和PL/SQL变量名。
  • 用来存储SQL,PL/SQL存储单元。

2)国家字符集,它是Oracle附加的字符集,其目的是为了增加Oracle 字符的处理能力。它解决了NCHAR等类型的定长多字节的编码的数据支持,然而Oracle的基本字符集并不能支持这点。国家字符集在oracle9i中进行定义,只能在unicode编码中的AF16UTF16和UTF8 中选择默认值是AF16UTF16。作用是:

  • 用来存储NCHAR, NVARCHAR2,NBLOB, NLONG等类型的数据。

6. 客户端字符集

客户端的字符集,是客户端定义的字符数据的编码方式。对所有来自客户端和发自客户端的字符数据均使用客户端定义的字符编码方式。客可以作是与数据库直接

连接种应用,如PL/SQL.Imp/Exp等。在Oralce里,客户端字符集是通过NLS_LANG参数设定的。

分享到:
评论

相关推荐

    循序渐进Oracle:数据库的字符集和字符集文件

    导读:本文来自『墨天轮』专栏“循序渐进Oralcle”(https://www.modb.pro/topic/6289,复制到浏览器中打开或者点击“阅读原文”),介绍《循序渐进Oracle》第三章的3.1-3.4节:字符集的基本知识、数据库的字符集、...

    oracle errors (oracle 错误)

    介绍了Oracle错误的基础知识、各种错误出现的原因、连接数据库时可能出现的错误信息以及识别和解决错误的方法多方面的内容

    ORACLE数据库基础知识-华为维护资料

    第1章 ORACLE数据库基础知识 1 1.1 产品概述 1 1.1.1 产品简介 1 1.1.2 基本概念 1 1.2 ORACLE系统结构 2 1.2.1 ORACLE物理结构 2 1.2.2 系统全局区 4 1.2.3 进程 6 1.3 存储管理 7 1.3.1 逻辑结构 8 1.3.2 表...

    jfsky.com-Oracle数据库基础知识

    4.3 如何修改字符集 51 4.4 如何追加表空间 51 4.5 如何加大表的maxextents值 52 4.6 如何查询无效对象 52 4.7 怎样分析SQL语句是否用到索引 52 4.8 怎样判断是否存在回滚段竞争 53 4.9 怎样手工跟踪函数/存储过程...

    oracle常用知识

    多年来的一点oracle知识积累decode替代case,Drop含有特殊字符的表,Oracle的物化视图的建立方法,动态查询语句返回结果集,利用ORACLE的MINUS函数和OVER函数,直接通过视图实现两个记录集的比较,在oracle中生成...

    循序渐进Oracle 数据库管理、优化与备份恢复.pdf

    盖国强的这本《循序渐进Oracle:数据库管理、优化与备份恢复》从基础知识入手,详细讨论了Oracle数据库的创建、从OEM到Grid Control、Oracle的字符集、用户的创建与管理、表空间和数据文件、自动存储管理(ASM)、临时...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...

    oracle知识简介

    RAW:这是一种变长的二进制数据类型,采用这种数据类型存储的数据不会发生字符集的转换,可以把它看做是由数据库存储的信息的二进制字节串。最多可以存储2000字节 LONG RAW 能存储2GB的二进制信息,建议所有开发中都...

    循序渐进Oracle数据库管理、优化与备份恢复

    《循序渐进oracle:数据库管理、优化与备份恢复》从基础知识入手,详细讨论了oracle数据库的创建、从oem到grid control、oracle的字符集、用户的创建与管理、表空间和数据文件、自动存储管理(asm)、临时表空间和临时...

    Oracle Database 11g初学者指南--详细书签版

     本书能使读者快捷地掌握oracle database 11g的基础知识。通过自我评估教程,介绍了核心数据库技术、管理员职责、高可用性以及大型数据库特性。本书带领读者循序渐进地学习数据库设置、管理、编程、备份和恢复。还...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     4.2.2 语言字符集、常用符号  4.2.3 常量与变量  4.2.4 数据类型  4.2.5 集合API方法  4.3 流程控制  4.3.1条件控制  4.3.2 循环控制  4.3.3 顺序控制  4.4 游标  4.4.1显式游标  4.4.2 隐式...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    《Oracle Database 11g初学者指南》能使读者快捷地掌握Oracle Database 11g的基础知识。通过自我评估教程,介绍了核心数据库技术、管理员职责、高可用性以及大型数据库特性。《Oracle Database 11g初学者指南》带领...

    Direct Oracle Access v4.1.3 bcb6

    如果您正在使用 Borland 的 Delphi 或 C++Builder 开发 Oracle 应用程序,那么 Direct Oracle Access 组件集将帮助您实现 Borland 开发工具和 Oracle 数据库系统之间的无缝集成。 使用 Direct Oracle Access,应用...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存 32 2.6 查询转换 35 2.7 视图合并 36 2.8 子查询解嵌套 39 2.9 谓语前推 42 2.10 使用物化视图...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

    asp.net知识库

    事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle...

Global site tag (gtag.js) - Google Analytics