近期从正式库中导出数据库到测试库中,在测试库导入时报一个错误,但其它表导入都很正常的
猜想可能是导入和导出时客户端的字符集不一致造成的。
在正式环境oracle用户下查当前环境的字符集,env 用来显示环境变量:
[oracle@wdb ~]$ env|grep LANG
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
LANG=en_US.UTF-8
在测试环境oracle用户下查当前环境的字符集:
[oracle@testdb ~]$ env|grep LANG
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
LANG=zh_CN.UTF-8
将测试环境当前环境编码设置与正式环境一样的,在导入数据
1、临时当前环境生效
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
2、可以编辑 bash_profile 文件进行永久设置
LANG=en_US.UTF-8; export LANG
NLS_LANG='AMERICAN_AMERICA.ZHS16GBK';export NLS_LANG
# 使 bash_profile 设置生效
source .bash_profile
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export NLS_LANG="Simplified Chinese_china".ZHS16GBK