今天用imp还原数据库,存储过程全部乱码
背景:由于新应用要上线了,准生产UAT需要迁移到生产服务器。
原数据库架构为Solaris+oracle10g
新数据库架构为RHEL7+oracle12c
解决思路:
1、查询两台DB的字符编码:
select userenv('language') from dual;
均为AMERICAN_AMERICA.ZHS16GBK
2、查询操作系统设置的NLS_LANG环境变量:
Solaris系统与DB查询一致
Linux系统未设置该环境变量
export NLS_LANG = AMERICAN_AMERICA.ZHS16GBK
重新使用imp导入数据,存储过程中乱码问题完美解决!
3.把原数据库的过程导出,在新数据库重新执行,完美解决