使用exp导出报错EXP-00091
用exp导出数据时出现如下报错信息:
1)查询数据库的字符集
select userenv('language') from dual;
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,导出的信息最全面。