EXP-00091 正在导出有问题的统计信息 问题的解决(转)
治標不治本的解決方法:exp 命令的最后 加上 STATISTICS=NONE;;
此內(nèi)容摘錄字互聯(lián)網(wǎng),方便大家查詢使用
EXP-00091 正在導(dǎo)出有問題的統(tǒng)計信息 問題的解決
EXP-00091 正在導(dǎo)出有問題的統(tǒng)計信息。?
問題:?
. 正在導(dǎo)出表 BONUS導(dǎo)出了 0 行?
EXP-00091: 正在導(dǎo)出有問題的統(tǒng)計信息。?
. . 正在導(dǎo)出表 DEPT導(dǎo)出了 4 行?
EXP-00091: 正在導(dǎo)出有問題的統(tǒng)計信息。?
EXP-00091: 正在導(dǎo)出有問題的統(tǒng)計信息。?
. . 正在導(dǎo)出表 EMP導(dǎo)出了 12 行?
EXP-00091: 正在導(dǎo)出有問題的統(tǒng)計信息。?
分析原因:?
在數(shù)據(jù)庫的服務(wù)器端和客戶端字符集不同的情況下,導(dǎo)出(dump)數(shù)據(jù)庫表時,會產(chǎn)生這個錯誤。(雖然產(chǎn)生這個錯誤?
,但好像對導(dǎo)入沒有影響。網(wǎng)上的說法 )?
解決方法:?
step 1 先查看數(shù)據(jù)庫服務(wù)器數(shù)據(jù)的字符集:?
a.打開SQLPLUS,用sys用戶登錄。?
b .執(zhí)行SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';。?
其中'NLS_CHARACTERSET'必須為大寫。?
PARAMETER?
--------------------?
VALUE?
--------------------?
SIMPLIFIED CHINESE_CHINA.AL32UTF8?
或者?
SQL> select userenv('language') from dual;?
USERENV('LANGUAGE')?
或者?
select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'?
or?
select * from v$nls_parameters where parameter='NLS_CHARACTERSET';?
--------------------------------------------------------------------------------?
SIMPLIFIED CHINESE_CHINA.AL32UTF8?
step 2 根據(jù)step1查出的NLS_CHARACTERSET來修改exp 的環(huán)境變量:?
(Linux環(huán)境)?
在oracle用戶的.bash_profile文件加入?
export NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8 //AMERICAN_AMERICA.ZHS16GBK?
(Windows環(huán)境)?
1、打開注冊表,依次進入HKEY_LOCAL_MACHINE→SOFTWARE→ORACLE→HOME0目錄。?
2、察看NLS_LANG的值。?
3、將其修改為數(shù)據(jù)庫服務(wù)器端字符集相同的字符。?
或?
臨時設(shè)定環(huán)境變量?
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8?
這樣雖然在exp 的時候,不會再報exp -00091 但是dos 下的提示信息卻變成亂碼了,但是這個不影響exp .?
導(dǎo)出完后再 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 即可?
查看操作系統(tǒng)默認的字符集:?
dos下 chcp?
活動的代碼頁:936?
代碼頁936也就是中文字符集 GBK,在Microsoft的官方站點上,我們可以遭到關(guān)于936代碼頁的具體編碼規(guī)則,請參考以下鏈接:?
http://www.microsoft.com/globaldev/reference/dbcs/936.htm?
附上exp-91的oracle error message 解決方案說明:?
oerr exp 91?
00091, 00000, "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.?
http://hi.chinaunix.net/?uid-11771621-action-viewspace-itemid-21593?
http://www.diybl.com/course/7_databases/oracle/oraclejs/20091024/179978.html?
學習oracle字符集?
Using Globalization Support?
select * from v$nls_valid_values?
1.create database?
character set?
2.some concepts?
OS:LANG?
NLS_LANG?
DB:NLS_LANGUAGE?
環(huán)境變量(客戶端)?
NLS_LANG = language_territory.charset?
它有三個組成部分(語言、地域和字符集),每個成分控制了NLS子集的特性。其中:?
Language指定服務(wù)器消息的語言,?
territory指定服務(wù)器的日期和數(shù)字格式,?
charset指定字符集。?
如:AMERICAN_AMERICA.ZHS16GBK?
SIMPLIFIED CHINESE_CHINA.ZHS16GBK?
SIMPLIFIED CHINESE_CHINA.al32utf8?
SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1?
從NLS_LANG的組成我們可以看出,真正影響數(shù)據(jù)庫字符集的其實是第三部分。?
所以兩個數(shù)據(jù)庫之間的字符集只要第三部分一樣就可以相互導(dǎo)入導(dǎo)出數(shù)據(jù),?
前面影響的只是提示信息是中文還是英文。?
win:?
C:\>set NLS_LANG=?
C:\>echo %NLS_LANG%?
%NLS_LANG%?
C:\>sqlplus scott/tiger@10g?
SQL> select userenv('language') from dual;?
SIMPLIFIED CHINESE_CHINA.ZHS16GBK?
SQL> select * from test;?
1 hello?
2 張飛?
sql>select * from hh;?
第 1 行出現(xiàn)錯誤:?
ORA-00942: table or view does not exist?
sql>quit?
C:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK?
C:\>echo %NLS_LANG%?
AMERICAN_AMERICA.ZHS16GBK?
C:\>sqlplus scott/tiger@10g?
SQL> select * from hh;?
ERROR at line 1:?
ORA-00942: table or view does not exist?
C:\>set NLS_LANG=simplified chinese_china.zhs16gbk?
C:\>echo %NLS_LANG%?
simplified chinese_china.zhs16gbk?
C:\>sqlplus scott/tiger@10g?
SQL> select * from hh;?
第 1 行出現(xiàn)錯誤:?
ORA-00942: table or view does not exist?
NLS_LANG=simplified chinese_china.zhs16gbk?
很多人都碰到過因為字符集不同而使數(shù)據(jù)導(dǎo)入失敗的情況。?
這涉及三方面的字符集,?
一是Oracel server端的字符集,?
二是oracle client端的字符集,?
三是dmp文件的字符集。在做數(shù)據(jù)導(dǎo)入的時候,需要這三個字符集都一致才能正確導(dǎo)入。?
3.Oracle Server端和Client端的字符集?
查詢Oracle Server端的字符集?
SQL>select userenv('language') from dual;?
SIMPLIFIED CHINESE_CHINA.ZHS16GBK?
select * from props$?
SELECT parameter, value FROM nls_database_parameters WHERE parameter LIKE '%CHARACTERSET%';?
查詢Oracle client端的字符集:?
在Windows平臺下,就是注冊表里面相應(yīng)OracleHome的NLS_LANG.?
還可以在Dos窗口里面自己設(shè)置,比如:set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK?
在Unix平臺下 $echo $NLS_LANG?
4.exp imp 時的字符集轉(zhuǎn)換?
C:\>set NLS_LANG=simplified chinese_china.zhs16gbk?
C:\>exp scott/tiger@10g owner=scott file=scott.dmp?
查詢dmp文件的字符集:用Oracle的exp工具導(dǎo)出的dmp文件也包含了字符集信息,?
dmp文件的第2和第3個字節(jié)記錄了dmp文件的字符集。?
如果dmp文件不大,比如只有幾M或幾十M,可以用UltraEdit打開(16進制方式),?
看第2第3個字節(jié)的內(nèi)容,如0354,然后用以下SQL查出它對應(yīng)的字符集:?
scott:?
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;?
ZHS16GBK?
如果dmp文件很大,比如有2G以上(這也是最常見的情況),?
用文本編輯器打開很慢或者完全打不開,可以用以下命令(在unix主機上):?
cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6?
然后用上述SQL也可以得到它對應(yīng)的字符集。?
5.不建議修改oracle數(shù)據(jù)庫server端的字符集?
特別說明,我們最常用的兩種字符集ZHS16GBK(new)和ZHS16CGB231280(字符少,舊)之間不存在子集和超集關(guān)系,?
因此理論上講這兩種字符集之間的相互轉(zhuǎn)換不受支持。?
修改Server端字符集(不建議使用):?
在Oracle 8之前,可以用直接修改數(shù)據(jù)字典表props$來改變數(shù)據(jù)庫的字符集。?
但Oracle8之后,至少有三張系統(tǒng)表記錄了數(shù)據(jù)庫字符集的信息,只改props$
總結(jié)
以上是生活随笔為你收集整理的EXP-00091 正在导出有问题的统计信息 问题的解决(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: netca 遇到TNS-04612: X
- 下一篇: expdp和impdp的用法详解