2010-11-25 47 views
8

我們被另一個團隊遞交了轉儲文件,這些團隊在今年剩餘時間內已經離開。當我們試圖轉儲導入到我們自己的數據庫,我們得到以下錯誤:確定現有Oracle數據庫轉儲文件的NLS_LANG設置

IMP-00038: Could not convert to environment character set's handle

在一些研究,我們的猜測是,我們在源機器的NLS_LANG設置和我們本地機器之間的不匹配。我們目前沒有任何方法來檢查源機器上NLS_LANG的值。

因此,我們手中只有一個轉儲文件,是否有辦法找出導出完成的NLS_LANG值?從它的外觀來看,我們應該能夠在運行導入客戶端(imp)之前覆蓋NLS_LANG環境變量。

另一件事是,轉儲是從一個11g實例完成的,我們的imp版本是10.我讀到imp是不兼容的。這可能是問題在這裏(而不是NLS_LANG不匹配)?

回答

6
在UNIX

最簡單的方法是:

#>imp username/password file=test.dmp show=y 

Import: Release 10.2.0.3.0 - Production on Fri Nov 26 08:38:47 2010 

Copyright (c) 1982, 2005, Oracle. All rights reserved. 


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production 
With the Partitioning, OLAP and Data Mining options 

Export file created by EXPORT:V10.02.01 via conventional path 
import done in US7ASCII character set and AL16UTF16 NCHAR character set 
import server uses WE8ISO8859P1 character set (possible charset conversion) 

版本EXP/IMP一個問題: 我平時使用的V10導出程序並使其連接到V11數據庫。 確保你在dev10的oracle_home的tnsnames.ora中有dev11的別名。

hostname{oracle}# . oraenv 
ORACLE_SID = [oracle] ? dev10 
hostname{oracle}# 
hostname{oracle}#>exp username/[email protected] full=y dumpfile=dump.exp 
+0

只有Oracle客戶機安裝纔可以使用show = y嗎?所以我不需要任何用戶名/密碼? – guerda 2016-03-18 12:24:36

2

即使該文件是二進制文件,也有一些人類可讀的文本摘錄。我看到有下列字符串,我覺得這回答我的問題:

 
<CHARSET>AL32UTF8</CHARSET><NCHARSET>AL16UTF16</NCHARSET> 
... 
NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' 
10

阿泰,嘗試IMPDP - 有時可以幫助:-)

+6

使用`imp`導入使用`expdp`導出的轉儲文件也會導致此錯誤。 – 2011-09-19 14:57:43

1

Another thing is, the dump was done from an 11g instance and our imp version is 10. I read that imp is not forward compatible. Could this be the issue here (instead of the NLS_LANG mismatch)?

答:你說的沒錯;由於目標Oracle數據庫的Oracle客戶端較舊,因此無法導入使用給定Oracle客戶端創建的轉儲文件。雖然不建議

,您可以用年長 Oracle客戶端(即10克)導出來源Oracle數據庫(即10克+),因爲你使用的是相同的Oracle客戶端版本導入到您的較舊目標oracle數據庫(即10g)。

假設:源數據庫的Oracle客戶端版本與目標Oracle數據庫版本相同或更新。請注意,混合工具數據泵(11g)和imp(-10g)導入實用程序不起作用。

Interessant鏈接Using Different Releases and Versions of Export

1

也許它是使用expdp出口....嘗試impdp ....這是我所看到的谷歌搜索時,真正它的工作對我來說這個同樣的問題。

相關問題