exp imp遇到的問題

2021-04-14 02:19:54 字數 2231 閱讀 7690

這兩天在用

oracle

的exp/imp

工具時遇到了一些問題,困擾了我很長時間,現在終於解決了,特此記錄下來。

源伺服器

: oracle 9.2.0.6.0

目標伺服器

: oracle 9.2.0.1.0

問題一:exp-00003:未找到段(****)的儲存定義

原因:客戶端和伺服器版本不一致

解決辦法:

1. 公升級客戶端 2.

改檢視,這一段是網上找到的

當使用9205

以前版本的

exp程式去

9205

及以上的資料庫中去匯出帶

lob欄位的表時

, 會遇到乙個錯誤

, 錯誤資訊為

"exp-00003 :

沒找到段的存貯定義

.....",

事實上這是乙個

oracle

的bug,

可以通過監時地更改檢視

"exu9tne"

的定義來臨時解決問題

, 如下所示

:

在匯出前

, 連線到

sys使用者

, 執行以下

sql:

create or replace view exu9tne (

tsno, fileno, blockno, length) as

select ts#, segfile#, segblock#, length

from sys.uet$

where ext# = 1

union all

select * from sys.exu9tneb

/

匯出完成後

, 執行以下命令來還原檢視的定義

, 下面貼的是

oracle 9

用的, 10g

metalink

來確定,

或者在執行前乙個命令之前, 從

user_views

中將原檢視的定義查出來

, 這樣做也是

dba乙個很好的習慣.

create or replace view exu9tne (

tsno, fileno, blockno, length) as

select ts#, segfile#, segblock#, length

from sys.uet$

where ext# = 1

3. 如果表中沒有

blob

字段,有時也會出現這個錯誤,設定引數

compress=y

可以解決,不需要改檢視。

問題二:imp時停止,無反映

原因:儲存過程寫的有問題

解決:

這個問題困擾我最長的時間,一共

16m的資料,匯入時在表導完後就停止不動了,只能重啟伺服器程序。在網上找了好多帖子,基本上都是說增大回退段,增加表空間,設定自動歸檔等等,但我的資料才這麼點,根本就不是這個原因,更令人奇怪的是,另乙個

schema

下的200多m

資料卻很順利的導進了。

後來在重啟服務的時間,注意到

dos視窗中顯示乙個

package

編譯未完成,就想是不是包的問題。將此包從源伺服器上刪掉後,重新匯出,再匯入時果然可以了。那就查這個包吧,最後查不查去,問題竟出在乙個

select

語句上,

select "ss" || count(*) into v_a from aa ;

就是這個語句,在源伺服器上編譯時完全正常,但到本地伺服器上編譯會導致死鎖。在

count(*)

前加上to_char()

就好了,不知道這是什麼原因。可能是版本問題吧,

在exp imp匯入匯出的時候遇到的問題

1 在用exp imp匯入匯出的時候報ora 12154 tns could not resolve the connect identifier specified 需要配製檔案 看 opt oracle product 10.2 db 1 network admin下是否有listener.or...

exp imp 注釋亂碼問題

檢視源資料庫字符集語句 select userenv language from dual 檢視目標資料庫字符集語句 select userenv language from dual 如果還是亂碼,可設定源資料庫所在系統的 nls lang 應該就不會亂碼了。windows設定nls lang 1...

exp imp工具的使用

export import 使用技巧與常見錯誤 export 和 import 是一對讀寫oracle資料的工具.export 將 oracle 資料庫中的資料輸出到作業系統檔案中,import 把這些檔案中的資料讀到oracle 資料庫中.export import可以用來完成以下工作 資料歸檔,...