oracle中的国家字符集与数据库字符集的区别

WBOY
发布: 2016-06-07 15:44:56
原创
1181 人浏览过

原帖地址:http://howieshen.blogbus.com/logs/60501688.html 服务器端:(oracle服务器端字符集) 数据库字符集在创建数据库时指定,在创建后通常不能更改。在创建数据库时,可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。 1. 字符

原帖地址:http://howieshen.blogbus.com/logs/60501688.html

 

服务器端:(oracle服务器端字符集)
数据库字符集在创建数据库时指定,在创建后通常不能更改。在创建数据库时,可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。
1. 字符集:
    (1)用来存储CHAR, VARCHAR2, CLOB, LONG等类型数据
    (2)用来标示诸如表名、列名以及PL/SQL变量等
    (3)用来存储SQL和PL/SQL程序单元等
2. 国家字符集:
    (1)用以存储NCHAR, NVARCHAR2, NCLOB等类型数据
    (2)国家字符集实质上是为oracle选择的附加字符集,主要作用是为了增强oracle的字符处理能力,因为NCHAR数据类型可以提供对亚洲使用定长多字节编码的支持,而数据库字符集则不能。国家字符集在oracle9i中进行了重新定义,只能在unicode编码中的AF16UTF16和UTF8中选择,默认值是AF16UTF16
3. 查询字符集参数:
    可以查询以下数据字典或视图查看字符集设置情况
    nls_database_parameters、props$、v$nls_parameters
    查询结果中NLS_CHARACTERSET表示字符集,NLS_NCHAR_CHARACTERSET表示国家字符集
4. 修改数据库字符集:
    按照上文所说,数据库字符集在创建后原则上不能更改。如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换,或通过ALTER DATABASE CHARACTER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,例如UTF8是US7ASCII的超集,修改数据库字符集可使用ALTER

客户端:(NLS_LANG参数)
客户端字符集定义了客户端字符数据的编码方式,任何发自或发往客户端的字符数据均使用客户端定义的字符集编码,客户端可以看作是能与数据库直接连接的各种应用,例如sqlplus,exp/imp等。客户端字符集是通过设置NLS_LANG参数来设定的。

国家字符集的不同:(AL16UTF16与UTF-8)
1. AL16UTF16 和 UTF8 这两种选择都适用于国家字符集
2. AL16UFT16 是宽度固定的双字节 Unicode 字符集;UTF8 是宽度可变的、一至三个字节的 Unicode 字符集
3. 欧洲字符在 UTF8 中按一至两个字节存储,而在 AL16UTF16 中按两个字节存储,相比之下,UTF8可以节省空间;亚洲字符在 UTF8 中按三个字节存储,这样,所需的空间比在 AL16UTF16 中要多
4. AL16UTF16 是宽度固定的编码,因此在执行速度上要比宽度可变的 UTF8 快

如果使用EXP/IMP进行数据库的导出/导入,不仅要注意两服务器端之间的字符集的兼容性,而且要考虑到导出/导入过程中,服务器端与客户端之间的字符集的兼容性,特别是导出的时候。

参考文档:
1. http://silverw0396.javaeye.com/blog/90554
2. http://www.itpub.net/redirect.php?fid=2&tid=933582&goto=nextoldset
3. http://www.itpub.net/thread-1042732-1-1.html
4. http://www.itpub.net/viewthread.php?tid=276524
5. http://www.itpub.net/viewthread.php?tid=933964
6. http://database.51cto.com/art/200911/164247.htm
7. http://www.itpub.net/thread-353856-1-1.html


来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!