imp匯入IMP-00098: INTERNAL ERROR: impccr2_字符集_部分儲存過程建立不了

wisdomone1發表於2010-06-24
   開發同事給我一個dmp檔案,要匯入到現在的測試rhel5上面的yisile庫的zxy使用者中,
我採用匯入語句如下:
imp   file=/oracle/xzbpp.dmp fromuser=xzbpp touser=zxy log=/oracle/import_yisile_songzhun.log
 (注:因為我不知是哪個使用者匯出這個xzbpp的dmp檔案,先用imp 試導下,就知道是哪個使用者匯出的,馬上中斷掉,呵呵,然後再寫真正imp的指令碼),別加上full=y,哈哈
 
由於字符集的原因:
   檢視匯入日誌(imp),發現如下儲存過程沒有構建或匯入成功(select count(distinct name) from user_source查儲存過程總數)
IMP-00098: INTERNAL ERROR: impccr2
IMP-00098: INTERNAL ERROR: impccr2
IMP-00017: following statement failed with ORACLE error 4043:
 "ALTER PROCEDURE "PROC_FX_OPERATIONSUM" COMPILE REUSE SETTINGS TIMESTAMP '20"
 "10-06-17:11:06:03'"
IMP-00003: ORACLE error 4043 encountered
ORA-04043: object PROC_FX_OPERATIONSUM does not exist
IMP-00017: following statement failed with ORACLE error 4043:
 "ALTER PROCEDURE "PROC_FX_PRESSSUM" COMPILE REUSE SETTINGS TIMESTAMP '2010-0"
 "6-17:11:04:26'"
IMP-00003: ORACLE error 4043 encountered
ORA-04043: object PROC_FX_PRESSSUM does not exist
About to enable constraints...
Import terminated successfully with warnings.
-bash-3.2$
 
 
 
後來處理方法為:
1,設定secure crt及NLS_LANG及要匯入的ORACLE資料庫字符集為一致性,全是ZHS16GBK(記得:secure crt的字符集很重要,不然還是導不進儲存過程,選擇default)
  -bash-3.2$ env|grep LANG
NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
secure crt選擇預設
資料庫字符集為zhs16gbk
 
 
 
2,資料庫字符集有些複雜,還有rhel5上面的還有LANG環境變數,這又是起什麼作用呢
 
3,可否直接修改匯出的dmp檔案的字符集,再次測試匯入到目標資料庫,看是否還有亂碼或儲存過程無法建立及匯入的情況發生,這個也要記錄blog
 
 
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-666050/,如需轉載,請註明出處,否則將追究法律責任。

相關文章