本文共 1674 字,大约阅读时间需要 5 分钟。
今天我写了一个在Linux下执行定时任务备份Oracle数据库的脚本,但是在root用户下执行脚本的时候报错了,错误内容为EXP-00091,下面附上解决方案(当然,下面的内容是我转载的哦!):
对于一个经常用oracle的人来讲,会经常用到EXP和imp工具,我们在做EXP的过程中可能经常会遇到EXP-00091 Exporting questionable statistics的错误。
其实这个是EXP的error message,它产生的原因是因为我们EXP工具所在的环境变量中的NLS_LANG和Database中的NLS_CHARACTERSET不一致导致的。但需要说明的是,EXP-00091这个error message对所产生的dump没有影响,生成的dump还可以正常的imp(但是最好还是再次EXP)
在oracle的doc中这样描述这个错误信息:
EXP-00091: Exporting questionable statistics.
Cause: Export was able export statistics, but the statistics may not be usuable. The statistics are questionable because one or more of the following happened during export: a row error occurred, client character set or NCHARSET does not match with the server, a query clause was specified on export, only certain partitions or subpartitions were exported, or a fatal error occurred while processing a table.
Action: To export non-questionable statistics, change the client character set or NCHARSET to match the server, export with no query clause, export complete tables. If desired, import parameters can be supplied so that only non-questionable statistics will be imported, and all questionable statistics will be recalculated.
上面的错误描述(cause)和错误的解决方法(action)已经说的比较明确了,下面我们做一下简单的说明
出现EXP-00091之后,我们采用的解决方案如下:
1、查看database中的NLS_CHARACTERSET的值
a、select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET';
b、select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
PARAMETER VALUE
----------------- ----------
NLS_CHARACTERSET ZHS16GBK
2、根据第一步查出来的NLS_CHARACTERSET(即ZHS16GBK)来设定
windows环境:cmd > set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
linux环境:Shell > export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
链接:exp/imp字符集问题的说明: