一般情况下数据库字符集UTF-8;国家字符集:UTF-16。
 
服务器端:(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. vue.js慢速入门(1)
  2. [计算机图形学] OpenGL读取obj文件并显示其3D效果
  3. 可编译为 UNICODE 和 ANSI 版本的遍历目录树程序_0.1
  4. 首个攻击该Mac OS系统的恶意软件——KeRanger
  5. shell学习记录003-cat命令
  6. firebug下载时出现there was an error loading firebug
  7. 最简单的视音频播放示例4:Direct3D播放RGB(通过Texture)
  8. 使用ffmpeg向crtmpserver发布rtsp流
  9. MSF 离线攻击
  10. ExtJs4得知(五岁以下儿童)主要的Ext分类
  11. ajax异步加载遮罩层特效
  12. 小tip:生成一组不重复的随机数(去重的方法)
  13. 深入理解数据库磁盘存储(Disk Storage)
  14. Promise和setTimeout执行顺序 面试题
  15. mybatis第一次搭建出错
  16. 为什么要学习socket
  17. php通过CURL模拟get提交请求
  18. SVM—PK—BP:SVR(better)和BP两种方法比较且实现建筑物钢筋混凝土抗压强度预测—Jason niu
  19. JSR 整理、翻译
  20. [warn] _default_ VirtualHost overlap on port 443, the first has precedence

热门文章

  1. SAP VL02N 字段不允许编辑
  2. C#获取各种当前日期时间
  3. Appium的触屏操作&设备交互api
  4. Linux开发C++
  5. PHP 发送application/json POST请求
  6. web基础(4): CSS布局与定位
  7. Java 复习篇2---jdk
  8. SQL Server创建dblink跨库查询
  9. Win7+VS2010 环境配置
  10. tomcat程序闪退,如何让tomcat不闪退,可以看见报错