陆续收到若干同行来邮件,讨论关于数据库字符集和国家语言字符集之间的关系。这里我提出自己的看法。本文后面的内容部分来自网上关于Sybase ASE的一篇技术文摘,但下载日久,难分谁之作品,这里借用一下,如果正好是您的,您来信告诉我,我转告大家!

该文为Sybase ASE所作,但对于Oracle道理相同,值得借鉴!

1:什么是字符集?
字符集是字符(包含字母,数字,符号和非打印字符等)以及所指定的内码所组成的特定的集合。通常一个字符集包含一个字母表中的字符,例如拉丁字母表被使用在英语语言中,那么如果要使用拉丁字符,就要配置使用英语语言集中的特定的字符集合――拉丁语言字符集。这里为什么特指了是英语语言集呢?因为字符集是基于某种操作系统平台和某种语言集支持的。语言集的集合被称为语言组,它可能包含一种或多种语言。本地字符集是基于特定语言组中所包含的一种或多种语言支持的,在特定操作系统平台上编码的集合。

在Client/Server系统中,支持多语言的数据处理,但是所有的语言必须属于同一个语言组。例如,从下表可以看出,如果服务器中的数据用组1中的字符集,则同一数据库中可以有法语,德语,英语以及该组中的其它语言。而在这个数据库中就不能同时存储日语,法语了。

这里请注意一个非常特别的字符集—Unicode—它支持世界上超过650种语言的国际字符集。Unicode允许在同一服务器上混合使用不同语言组的不同语言。

2:字符集和排序顺序的关系?

每种字符集都有一种或多种排序顺序,Adaptive Server(包括Oracle)使用它们存储数据。排序顺序与特定的语言或语言组及特定的字符集联系密切,不同的语言对同样字符的排序是不同的,因此,需要特定语言的排序顺序,以便正确地对字符进行排序。

二进制排序顺序:对于所有字符集都至少提供一个二进制排序顺序,这一排序顺序基于字符集中分配给代表每个字符的代码(“二进制”代码)的算数值,适用于每个字符集的前128个字符和亚洲语言。当字符集支持一种以上的语言时,二进制排序顺序将会得出不正确的结果,这时就应该选择其它排序顺序了。

字典排序,区分大小写,区分重音:分别对大写和小写字母进行排序。字典排序顺序识别字母的各种重音形式,并将它们排在相关联的非重音字母之后。

字典排序,不区分大小写,区分重音:按字典顺序排序,大写字母与小写字母等同,在排序结果中大小写字母混合使用。对于避免表中名称的重复条目很有用。

字典排序,不区分大小写,区分重音,具有优先级:在排序时不区分大小写,在所有其它条件相同时,大写字母具有高的优先级(即大写字母先出现)。

字典排序,不区分大小写,不区分重音:将加重音格的字母与未加重音格的相关联字母同等对待,它在排序中混合了重音字符。

3:什么是字符集转换(Oracle的国家语言字符集)?

为保持客户端与服务器之间的数据完整性,数据必须在字符集之间进行转换,目的是跨机器和字符集使用时,确保“a”还是“a”,此过程就是字符集转换。 Oracle NLS就是如何执行转换的方式和指定。

转载于:https://blog.51cto.com/wenping/256393

《Oracle大型数据库在AIX UNIX上的实战详解》的集中答疑九 数据库字符集与国家语言...相关推荐

  1. Oracle大型数据库在AIX UNIX上的实战详解

    终于面世了,比较兴奋,十几年以来,又再一次有作品出版- 就是它! 转载于:https://blog.51cto.com/wenping/243082

  2. oracle大型数据库系统在aix/unix上的实战详解 pdf,Oracle10g在AIX上的安装准备工作《Oracle大型数据库系统在AIX/unix上的实战详解》集中答疑40...

    近期来,若干本书读者希望我能发表一下10g/11g在AIX上的安装细节,我找到以前的一个文档(其中一部分内容应该来源于网上难以考察 近期来,若干本书读者希望我能发表一下10g/11g在AIX上的安装细 ...

  3. 《oracle大型数据库系统在AIX/unix上的实战详解》讨论31: oracle、sybase 数据库的不同访问...

    <Oracle大型数据库系统在AIX/UNIX上的实战详解> 讨论31:  oracle.sybase 数据库的不同访问方式   文平. 用户来信要求更细节比较一下Oracle和sybas ...

  4. Oracle大型数据库系统在AIX/UNIX上的实战详解

    前言 风,紧, 夜,深沉, 剑,已出鞘, 影,飘然前行! 本书的立意和内容 在服务器领域,IBM p系列服务器与AIX操作系统毫无疑问是UNIX服务器领域中的佼佼者,它代表着UNIX深刻的技术内涵和广 ...

  5. 《oracle大型数据库系统在AIX/unix上的实战详解》集中讨论42:在AIX环境下安装Oracle11gR1 文平...

    一直和大家说要总结一下11g在AIX上安装问题,可是一直处于出差状态,南方电网折腾Sybase和Oracle.摩托罗拉飞思卡尔应用优化,没断.今天得空,把AIX环境下实施Oracle11gR1 和大家 ...

  6. oracle大型数据库系统在AIX/unix上的实战详解 讨论76 Oracle备份问题

    问题 我发现我的备份,只备一点就满了,实际上空间大着呢,为什么? 回答 :需要参数设置,参见本文第二页中下面这行相关内容: alter system set db_recovery_file_dest ...

  7. 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨论 14...

    累计读者的来信中,有若干位同仁谈到Oracle的性能问题.什么叫性能慢?怎么量化性能统计?问题我不一一列出了,下面的文字大部分来自Oracle 英文文档,我认为描述的极为精确,比我说的强. 如果有效地 ...

  8. 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨...

    累计读者的来信中,有若干位同仁谈到Oracle的性能问题.什么叫性能慢?怎么量化性能统计?问题我不一一列出了,下面的文字大部分来自Oracle 英文文档,我认为描述的极为精确,比我说的强. 也请参见w ...

  9. oracle 优化逻辑读过高(实战详解:逻辑读与arraysize关系)

    数据块是oracle最基本的读写单位,但用户所需要的数据,并不是整个块,而是块中的行,或列. 当用户发出SQL语句时,此语句被解析执行完毕,就开始了数据的抓取阶段,在此阶段,服务器进程会先将行所在的数 ...

最新文章

  1. LruCache缓存处理及异步加载图片类的封装
  2. SQL Server基础
  3. 存储过程Procedure
  4. python循环10次1001python循环10次_Python循环题怎么做?
  5. Repository和dao
  6. 【基础】排序算法学习笔记
  7. 简单粗暴Tensorflow 2.0
  8. css中设置字体下划线,css如何设置字体下划线
  9. link rel=canonical概念和用法(增加页面权重,利于排名)
  10. 遥控器,未来世界的入口?
  11. 区块链项目如何开发?区块链APP和DAPP怎么做?
  12. CentOS 宝塔7.9.0 安装 onlyoffice
  13. 墨者学院刷题笔记——SQL手工注入漏洞测试(MongoDB数据库)
  14. 一文搞懂TCP/IP 协议栈原理
  15. 如何将收件箱中的发件人批量导入企业云邮通讯录
  16. 山东十大计算机排名2015,2015山东省大学专业排名
  17. 11月11日在线研讨会预热 | ODX诊断数据库转换工具 — VDC(ODX)
  18. [JSP] 利用application来写一个网页计数器
  19. 再谈谈贷后分类场景及模型变量解析等内容
  20. poc-狮子鱼cms

热门文章

  1. CentOs6.5下安装svn
  2. iphone UILabel 顶部对齐(top align)
  3. sklearn 安装_sklearn-classification_report
  4. Cordova入门系列(三)Cordova插件调用 转发 https://www.cnblogs.com/lishuxue/p/6018416.html...
  5. Python——逻辑运算(or,and)
  6. semantic ui要装什么才能使用
  7. windbg工具安装配置及dump抓取
  8. 160809308周子济第7次作业
  9. [转]svn常用命令
  10. 如何组合救援磁盘以创建最终Windows修复磁盘