oracle常用的导出数据工具是exp,但是偶尔会出现错误exp-00091,本人就有幸遇到,数据那可是容不得一点错误地,遂解决之。
附上解决方案如下:

问题描述

产生的原因是因为我们exp工具所在的环境变量中的NLS_LANG与DB中的NLS_CHARACTERSET不一致。
导出报错截图

解决方式

⑴ 我们来查看DB中的NLS_CHARACTERSET的值:

SQL>  select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET';   

结果:

PARAMETERVALUE
NLS_CHARACTERSETAL32UTF8

或者

SQL> select * from v$nls_parameters  where parameter='NLS_CHARACTERSET';   

结果:

PARAMETERVALUE
NLS_CHARACTERSETAL32UTF8

或者

SQL> select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET';

结果:

PARAMETERVALUE
NLS_CHARACTERSETAL32UTF8

⑵ 查看环境变量中的NLS_LANG

Linux系统:

[oracle@root: ~]$echo $NLS_LANG

结果:

AMERICAN_AMERICA.ZHS16CGB231280     --果然与DB中NLS_CHARACTERSET=AL32UTF8不同

windows系统:右键”我的电脑“>属性>高级系统设置>环境变量
查看环境变量步骤
查看图中5中的 NLS_LANG是否与(1)中查询的一致(我这里更改后的,所以是一样的)。

⑶ 根据⑴查出的NLS_CHARACTERSET(AL32UTF8)来设定exp的环境变量:

windows系统:

C:\Users\Administrator> set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

Linux系统:

[oracle@root: ~]$export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
[oracle@root: ~]$echo $NLS_LANG
AMERICAN_AMERICA.AL32UTF8      --设置与DB中NLS_CHARACTERSET=AL32UTF8相同。

⑷ 再来EXP导出数据 查看log中是否还有EXP-00091报错?

修改后的导出截图
Export terminated successfully without warnings. --成功导出且没警告。

EXP-00091问题已经解决。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐