重生之一路荆棘完整版:EXP--解決EXP-00091的方法

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 16:30:31

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

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

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

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

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

view plaincopy to clipboardprint?
  1. export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'  

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

No related posts.

转载请注明来源并保留原文链接