EXP-00091-错误解决

今天使用Oracle exp命令的时候无意中发现一个错误“EXP-00091”,以前也遇到过,只是没有在意,因为“EXP-00091”虽然是个错误,但并没有影响导入的结果。说起这个“EXP-00091”错误,还是笔者在给同事演示导入的时候发现的。。。。,当时从一个linux的机器上导出dmp文件,然后从另一台机器上导入这个文件,结果就报了一堆“EXP-00091”错误。。。,但后来观察数据库并没有数据异常或者乱码,因此就没深究。今天同事使用我的备份脚本的时候也发现了这个问题,于是深究下为什么。
通过一翻google后发现,“EXP-00091”问题是exp工具所在的环境变量中的NLS_LANG与DB中的NLS_CHARACTERSET不一致导致的。看看我的脚本第一句:

  1. //设置环境变量为“SIMPLIFIED CHINESE_CHINA.AL32UTF8”  
  2. export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8';  

那数据库中的NLS_LANG是什么呢?
执行结果:

  1. SQL>select userenv('language') from dual;  
  2.   
  3. USERENV('LANGUAGE')  
  4. ----------------------------------------------------  
  5. AMERICAN_AMERICA.ZHS16GBK  

原来我的Oracle用的是”AMERICAN_AMERICA.ZHS16GBK”,果然是不一致,那就改变下备份脚本吧。
直接修改为:

  1. export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'  

然后运行exp,错误不见了。该方法经测试导入数据库一切正常。至此EXP-00091问题,彻底解决。
注意:数据库版本 Oracle 10g XE


猜你喜欢

转载自blog.csdn.net/zhangxu777/article/details/82421653