oracle数据库字符集问题

一、什么是oracle字符集
oracle字符集实质就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。

影响oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下: NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:
Language:指定服务器消息的语言,影响提示信息是中文还是英文
Territory:指定服务器的日期和数字格式
Charset:指定字符集
如:AMERICAN_AMERICA.ZHS16GBK
从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。

NLS_LANG参数是否是环境变量中的NLS_LANG呢?
并不是。oracle环境变量中的NLS_LANG是定义客户端的字符集。
比如环境变量NLS_LANG=AMERICAN_AMERICA.ZHS16GBK但是数据库三个实例的字符集可以分别是:AMERICAN_AMERICA.AL32UTF8、AMERICAN_AMERICA.WE8ISO8859P1、AMERICAN_AMERICA.ZHS16GBK
继续阅读oracle数据库字符集问题