ORA-39112: dependent object type comment skipped
原文章: http://blog.itpub.net/29654823/viewspace-1779828/
今天要把測試庫schema用expdp倒進生產資料庫中,本來非常簡單的幾個步驟,遇到了大量的 ora-39112: dependent object type comment skipped 這個錯誤。
網上查了查,導致這個問題的情況大致有一下幾個情況,
1,在原來測試庫中,目標schema和別的使用者相互授權了,可是你匯出的dmp中沒有包含所有的使用者,匯入時對應使用者沒有建立。
2,再就是,資料表空間問題,測試庫中的使用者下的某個表的索引沒有在他的預設資料表空間裡,這樣你要在目標端(這裡就是生產環境),建立好對應的資料表空間,
就是說如果你在測試庫把a使用者的下的某個表的許可權授給了b,那麼你在把a使用者用資料泵倒進生產庫時,他會在生產庫中檢測有沒有使用者b。也要做相同的操作。
仔細一想還真是這樣的情況。
解決辦法:
使用impdp工具完成資料匯入時,會按照dump檔案中有關的儲存的參數資訊完成資料的匯入。很多情況下我們希望按照被匯入使用者的預設參數完成資料的匯入,
此時我們可以使用impdp的transform參數輔助完成
impdp system/oracle directory=mydump dumpfile=newllmj.dmp remap_tablespace=llmj_db:gold_mj_tab remap_schema=newllmj:gold_mj schemas=newllmj table_exists_action=replace transform=segment_attributes:n
remap_tablespace=llmj_db:gold_mj_tab 原來資料表空間:新的資料表空間
remap_schema=newllmj:gold_mj 原來的schema:現在的schema
transform=segment_attributes:n 去掉資料表空間和儲存子句,加上這個參數後,remap_tablesapce參數就會失效,就會倒進使用者預設的資料表空間,
匯入語句改成上面的,然後執行就成功了,沒有報錯。