学习Oracle时,经常会遇到Oracle字符集问题,这里将介绍Oracle字符集问题的解决方法。Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。Oracle 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。
SELECT*FROMV$NLS_PARAMETERS NLS_LANGUAGESIMPLIFIEDCHINESE NLS_TERRITORYCHINA NLS_CURRENCYRMB NLS_ISO_CURRENCYCHINA NLS_NUMERIC_CHARACTERS., NLS_CALENDARGREGORIAN NLS_DATE_FORMATDD-MON-RR NLS_DATE_LANGUAGESIMPLIFIEDCHINESE NLS_CHARACTERSETAL32UTF8 NLS_SORTBINARY NLS_TIME_FORMATHH.MI.SSXFFAM NLS_TIMESTAMP_FORMATDD-MON-RRHH.MI.SSXFFAM NLS_TIME_TZ_FORMATHH.MI.SSXFFAMTZR NLS_TIMESTAMP_TZ_FORMATDD-MON-RRHH.MI.SSXFFAMTZR NLS_DUAL_CURRENCYRMB NLS_NCHAR_CHARACTERSETUTF8 NLS_COMPBINARY NLS_LENGTH_SEMANTICSBYTE NLS_NCHAR_CONV_EXCPFALSE
如何查询Oracle字符集
Oracle有三方面的字符集,一是oracel server端的字符集,二是Oracle client端的字符集;三是dmp文件的字符集。在做数据导入的时候,需要这三个字符集都一致才能正确导入。
1.查看oracel server端的字符集
selectuserenv('language')fromdual; SIMPLIFIEDCHINESE_CHINA.AL32UTF8
2.查看dmp文件的字符集
用Oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:
selectnls_charset_name(to_number('0354','xxxx'))fromdual
3.查看Oracle client端的字符集
是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如:set nls_lang=AMERICAN_AMERICA.ZHS16GBK这样就只影响这个窗口里面的环境变量。以上介绍Oracle字符集。
相关文章
标签:Oracle