用exp导出数据时出现如下报错信息:

wKiom1ZpNwGzgDEPAACNY0IB2dE163.png


1)查询数据库的字符集
select userenv('language') from dual;

wKiom1ZpNzOSCEoIAAA2yV4jncE489.png

2)方案一:

设置Linux操作系统的NLS_LANG环境变量
[oracle@node1]$ $export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

或是修改oracle用户下环境变量.bash_profile文件

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
TMP=/tmp;export TMP
TMPDIR=$TMP;export TMPDIR
ORACLE_BASE=/opt/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;export ORACLE_HOME
ORACLE_SID=report;export ORACLE_SID
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LANG=en_US.utf8; export LANG
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG


Window系统的环境变量的修改方法是:
C:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK


方案二:

统计信息字段statistics设置为none。

exp user/pwd@db file=/home/a.dmp log=/home/a.log statistics=none

不再报错。但这种方式相当于未导出那些因字符集不一致错误的统计信息,导入自然也不会有这部分统计信息,如果需要,那么只能再重新收集统计信息。

因此针对这种exp报EXP-00091的错误,可以有上述两种方式workaround,但推荐的肯定还是方案1,导出的信息最全面。