Oracle Imp and Exp (導入和導出)工具使用
2024-08-29 13:53:58
供稿:網友
Oracle 提供兩個工具imp.exe 和exp.exe分別用于導入和導出數據。這兩個工具位于Oracle_home/bin目錄下。
導出數據exp
1 將數據庫ATSTestDB完全導出,用戶名system 密碼123456 導出到c:/export.dmp中
exp system/123456@ATSTestDB file=c:/export.dmp full=y
其中ATSTestDB為數據庫名稱,system為該數據庫里的賬戶,123456為其密碼。
2 將數據庫中system用戶與sys用戶的所有相關資源導出(表,存儲過程,方法,視圖等等)
exp system/123456@ATSTestDB file= c:/export.dmp owner=(system,sys)
3 將數據庫中的表sys.table1、owbsys.table2導出
exp system/123456@ATSTestDB file= c:/export.dmp tables=( sys.table1, owbsys.table2)
注意,需要加上表的schema名稱,如果沒有加的話默認是導當前connected用戶的表,當然你連接上去的賬戶要對相應的表有權限。
4 將數據庫中的表table1中的字段Title以"GangGe"打頭的數據導出
exp system/123456@ATSTestDB file= c:/export.dmp tables=(table1) query=/" where Title like 'GangGe%'/"
斜杠 “/” 后面跟冒號是為了轉義字符冒號” “ “用的,因為后面是一條條件查詢語句。Query參數只能指定一個,如果Query要為多張表,所以同樣,tables里面也只能有一張表,或者多張表,然后query里面的條件在這些表上面都可以運行。否則只好多寫幾條exp語句了。
導出后,或許發現數據比較大,我們可以用一些壓縮工具對數據進行二次壓縮,例如用winzip, winrar, 7zip等第三方工具。同樣,exp支持一個參數用戶直接對數據進行壓縮:comPRess = y, 這個參數直接加到命令的后面即可實現導出的同時壓縮數據。
導入數據imp
我們知道怎么提取數據,那么還原的時候,就需要使用imp命令把導出的數據加載進去。
1 向ATSTestDB里面加載c:/export.dmp數據
imp system/123456@ATSTestDB file=c:/export.dmp
好了,導數據得時候,有可能報錯了。為什么?有兩種主要的原因:
A. 導入的對象(表,視圖,方法等)原本不屬于當前連接的用戶的
B. 導入的對象在該數據庫的指定用戶下已經存在
C. 導入的對象的原本用戶不再這個數據庫里
所有對象全部導入到指定的賬戶下:
Imp system/123456@ATSTestDB file=c:/export.dmp fromuser=sys touser=system
其中fromuser=sys為.dmp文件里的對象的原先的owner, touser=system 為作為導入的對象的新的Owner.
忽略/插入數據
Imp system/123456@ATSTestDB file=c:/export.dmp ignore=y
其中ignore=y告訴imp.exe把數據直接插入到相應對象(并且如果導入的對象里面有其他的對象,如約束,索引等,會在數據插入后被創建)。
2 加載其中的指定表table1,table2
imp system/123456@ATSTestDB file=C:/export.dmp tables=(table1,table2)
3 忽略加載約束
有時候導數據進來的時候,我們不需要把它的約束,比如一些外鍵約束等都導進來,可以加上參數constraints=N
imp system/123456@ATSTestDB file=C:/export.dmp tables=(table1,table2) constraints=N
4 不加載索引(比如唯一性的索引)
imp system/123456@ATSTestDB file=C:/export.dmp tables=(table1,table2) indexs=N
5 只加載結構,不加載數據
如果只要表的結構等定義(約束,觸發器),那么不要里面的數據,可以加上參數rows=N
imp system/123456@ATSTestDB file=C:/export.dmp tables=(table1,table2) rows=N
對于上述操作登陸操作的對象system是管理員,如果不是管理員,而是普通用戶,那么這個用戶必須有創建刪除對象的權利,對象可能包括 表,視圖,方法,存儲過程等等常見的對象。為什么“可能”包括?因為這個視導入導出的時候是否涉及相關類型的對象而定。
至此,以上簡單的Oracle導入導出數據的命令掌握了嗎?相信夠用了。
轉自:http://tech.ddvip.com/2009-06/1244792593123420.html