Oracle Imp and Exp (导入和导出) 数据 工具使用
Oracle 提供兩個(gè)工具imp.exe 和exp.exe分別用于導(dǎo)入和導(dǎo)出數(shù)據(jù)。這兩個(gè)工具位于Oracle_home/bin目錄下。
導(dǎo)入數(shù)據(jù)exp
1 將數(shù)據(jù)庫(kù)ATSTestDB完全導(dǎo)出,用戶名system 密碼123456 導(dǎo)出到c:\export.dmp中
exp system/123456@ATSTestDB file=c:\export.dmp full=y
其中ATSTestDB為數(shù)據(jù)庫(kù)名稱,system為該數(shù)據(jù)庫(kù)里的賬戶,123456為其密碼。
2 將數(shù)據(jù)庫(kù)中system用戶與sys用戶的所有相關(guān)資源導(dǎo)出(表,存儲(chǔ)過(guò)程,方法,視圖等等)
exp system/123456@ATSTestDB file= c:\export.dmp owner=(system,sys)
3 將數(shù)據(jù)庫(kù)中的表sys.table1、owbsys.table2導(dǎo)出
exp system/123456@ATSTestDB file= c:\export.dmp tables=( sys.table1, owbsys.table2)
注意,需要加上表的schema名稱,如果沒有加的話默認(rèn)是導(dǎo)當(dāng)前connected用戶的表,當(dāng)然你連接上去的賬戶要對(duì)相應(yīng)的表有權(quán)限。
4 將數(shù)據(jù)庫(kù)中的表table1中的字段Title以"GangGe"打頭的數(shù)據(jù)導(dǎo)出
exp system/123456@ATSTestDB file= c:\export.dmp tables=(table1) query=\" where Title like 'GangGe%'\"
斜杠 “\” 后面跟冒號(hào)是為了轉(zhuǎn)義字符冒號(hào)” “ “用的,因?yàn)楹竺媸且粭l條件查詢語(yǔ)句。Query參數(shù)只能指定一個(gè),如果Query要為多張表,所以同樣,tables里面也只能有一張表,或者多張表,然后query里面的條件在這些表上面都可以運(yùn)行。否則只好多寫幾條exp語(yǔ)句了。
導(dǎo)出后,或許發(fā)現(xiàn)數(shù)據(jù)比較大,我們可以用一些壓縮工具對(duì)數(shù)據(jù)進(jìn)行二次壓縮,例如用winzip, winrar, 7zip等第三方工具。同樣,exp支持一個(gè)參數(shù)用戶直接對(duì)數(shù)據(jù)進(jìn)行壓縮:compress = y, 這個(gè)參數(shù)直接加到命令的后面即可實(shí)現(xiàn)導(dǎo)出的同時(shí)壓縮數(shù)據(jù)。
導(dǎo)入數(shù)據(jù)imp
我們知道怎么提取數(shù)據(jù),那么還原的時(shí)候,就需要使用imp命令把導(dǎo)出的數(shù)據(jù)加載進(jìn)去。
1 向ATSTestDB里面加載c:\export.dmp數(shù)據(jù)
imp system/123456@ATSTestDB file=c:\export.dmp
好了,導(dǎo)數(shù)據(jù)得時(shí)候,有可能報(bào)錯(cuò)了。為什么?有兩種主要的原因:
A. 導(dǎo)入的對(duì)象(表,視圖,方法等)原本不屬于當(dāng)前連接的用戶的
B. 導(dǎo)入的對(duì)象在該數(shù)據(jù)庫(kù)的指定用戶下已經(jīng)存在
C. 導(dǎo)入的對(duì)象的原本用戶不再這個(gè)數(shù)據(jù)庫(kù)里
所有對(duì)象全部導(dǎo)入到指定的賬戶下:
Imp system/123456@ATSTestDB file=c:\export.dmp fromuser=sys touser=system
其中fromuser=sys為.dmp文件里的對(duì)象的原先的owner, touser=system 為作為導(dǎo)入的對(duì)象的新的Owner.
忽略/插入數(shù)據(jù)
Imp system/123456@ATSTestDB file=c:\export.dmp ignore=y
其中ignore=y告訴imp.exe把數(shù)據(jù)直接插入到相應(yīng)對(duì)象(并且如果導(dǎo)入的對(duì)象里面有其他的對(duì)象,如約束,索引等,會(huì)在數(shù)據(jù)插入后被創(chuàng)建)。
2 加載其中的指定表table1,table2
imp system/123456@ATSTestDB file=C:\export.dmp tables=(table1,table2)
3 忽略加載約束
有時(shí)候?qū)?shù)據(jù)進(jìn)來(lái)的時(shí)候,我們不需要把它的約束,比如一些外鍵約束等都導(dǎo)進(jìn)來(lái),可以加上參數(shù)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 只加載結(jié)構(gòu),不加載數(shù)據(jù)
如果只要表的結(jié)構(gòu)等定義(約束,觸發(fā)器),那么不要里面的數(shù)據(jù),可以加上參數(shù)rows=N
imp system/123456@ATSTestDB file=C:\export.dmp tables=(table1,table2) rows=N
對(duì)于上述操作登陸操作的對(duì)象system是管理員,如果不是管理員,而是普通用戶,那么這個(gè)用戶必須有創(chuàng)建刪除對(duì)象的權(quán)利,對(duì)象可能包括 表,視圖,方法,存儲(chǔ)過(guò)程等等常見的對(duì)象。為什么“可能”包括?因?yàn)檫@個(gè)視導(dǎo)入導(dǎo)出的時(shí)候是否涉及相關(guān)類型的對(duì)象而定。
至此,以上簡(jiǎn)單的Oracle導(dǎo)入導(dǎo)出數(shù)據(jù)的命令掌握了嗎?相信夠用了。
轉(zhuǎn)載于:https://www.cnblogs.com/alexweng/p/4430470.html
總結(jié)
以上是生活随笔為你收集整理的Oracle Imp and Exp (导入和导出) 数据 工具使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PowerMock与EasyMock的应
- 下一篇: AndroidStudio 3.0中之后