EXP-00091错误及解决方法
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';
结果:
PARAMETER | VALUE |
---|---|
NLS_CHARACTERSET | AL32UTF8 |
或者
SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
结果:
PARAMETER | VALUE |
---|---|
NLS_CHARACTERSET | AL32UTF8 |
或者
SQL> select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET';
结果:
PARAMETER | VALUE |
---|---|
NLS_CHARACTERSET | AL32UTF8 |
⑵ 查看环境变量中的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问题已经解决。