全面描述Oracle字符集


  本文标签:Oracle字符集

  学习Oracle时,经常会遇到Oracle字符集问题,这里将介绍Oracle字符集问题的解决方法  。Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系  。Oracle 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据  。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台  。

  1. SELECT * FROM V$NLS_PARAMETERS  
  2. NLS_LANGUAGE SIMPLIFIED CHINESE  
  3. NLS_TERRITORY        CHINA  
  4. NLS_CURRENCY RMB  
  5. NLS_ISO_CURRENCY CHINA  
  6. NLS_NUMERIC_CHARACTERS      .,  
  7. NLS_CALENDAR GREGORIAN  
  8. NLS_DATE_FORMAT    DD-MON-RR  
  9. NLS_DATE_LANGUAGE        SIMPLIFIED CHINESE  
  10. NLS_CHARACTERSET AL32UTF8  
  11. NLS_SORT BINARY  
  12. NLS_TIME_FORMAT     HH.MI.SSXFF AM  
  13. NLS_TIMESTAMP_FORMAT   DD-MON-RR HH.MI.SSXFF AM  
  14. NLS_TIME_TZ_FORMAT       HH.MI.SSXFF AM TZR  
  15. NLS_TIMESTAMP_TZ_FORMAT      DD-MON-RR HH.MI.SSXFF AM TZR  
  16. NLS_DUAL_CURRENCY       RMB  
  17. NLS_NCHAR_CHARACTERSET     UTF8  
  18. NLS_COMP        BINARY  
  19. NLS_LENGTH_SEMANTICS   BYTE  
  20. NLS_NCHAR_CONV_EXCP   FALSE 

  如何查询Oracle字符集

  Oracle有三方面的字符集,一是oracel server端的字符集,二是Oracle client端的字符集;三是dmp文件的字符集  。在做数据导入的时候,需要这三个字符集都一致才能正确导入  。

  1.查看oracel server端的字符集

  1. select userenv(language) from dual;  
  2. SIMPLIFIED CHINESE_CHINA.AL32UTF8 

  2.查看dmp文件的字符集

  用Oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集  。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:

  1. select nls_charset_name(to_number(0354,xxxx)) from dual 

  3.查看Oracle client端的字符集

  是注册表里面相应OracleHome的NLS_LANG  。还可以在dos窗口里面自己设置,比如:set nls_lang=AMERICAN_AMERICA.ZHS16GBK这样就只影响这个窗口里面的环境变量  。以上介绍Oracle字符集  。