Oracle數(shù)據(jù)庫導入導出命令總結(jié)
執(zhí)行環(huán)境:可以在SQLPLUS.EXE或者DOS(命令行)中執(zhí)行,
DOS中可以執(zhí)行時由于在oracle中,安裝目錄\\ora9i\\BIN被設置為全局路徑,該目錄下有EXP.EXE與IMP.EXE文件被用來執(zhí)行導入導出。oracle用java編寫,SQLPLUS.EXE、EXP.EXE、IMP.EXE這兩個文件是被包裝后的類文件。SQLPLUS.EXE調(diào)用EXP.EXE、IMP.EXE所包裹的類,完成導入導出功能。
下面介紹的是導入導出的實例。數(shù)據(jù)導出:
1將數(shù)據(jù)庫zxcc完全導出,用戶名kf密碼zx導出到D:\\zxcc.dmp中expkf/zx@zxccfile=d:\\zxcc.dmpfull=y
full=y表示全庫導出。full總共有2個可選項yes(y)/no(n),缺省情況下full=no,這時只會將該用戶下的對象導出。
2將數(shù)據(jù)庫zxcc中kf用戶與cc用戶的表導出expkf/zx@zxccfile=d:\\zxcc_ur.dmpowner=(kf,cc)
full方式可以備份所有用戶的數(shù)據(jù)庫對象,包括表空間、用戶信息等,owner=XX只能備份指定用戶的對象,其他用戶下的就不備份了,EXP中full=y和owner=XX是不能同時使用的。
3將數(shù)據(jù)庫zxcc中的表kf_operator、kf_role導出
expkf/zx@zxccfile=d:\\zxcc_tb.dmptables=(kf_operator,kf_role)
tables=xx表示備份相關表,不能同時和owner、full使用。
4將數(shù)據(jù)庫中的表kf_operator中的字段oper_id以"00"打頭的數(shù)據(jù)導出
expkf/zx@zxccfile=d:\\zxcc_t.dmptables=(kf_operator)query=\\"whereoper_idlike"00%"\\"
query主要是導出合適條件的數(shù)據(jù)。使用該參數(shù)時,需要注意對所有操作系統(tǒng)保留字符都要使用轉(zhuǎn)義符號。若有括號()也需要轉(zhuǎn)義:
query=\\"wheredt=to_date\\(\"201*-09-22\",\"yyyy-mm-dd\"\\)\\"。
如果遇到條件比較繁瑣的語句,頻繁的轉(zhuǎn)義操作不僅費時,還很容易出錯。我們可以使用exp或expdp的PARFILE參數(shù)避免query內(nèi)容的繁瑣轉(zhuǎn)義問題。例:
oracleDBALNP01>cat>zxcc.partables=kf_operatorfile=zxcc.dmp
query="wheredt_time=to_date("201*-06-25","yyyy-mm-dd")"這時就可以盡情的再雙引號中寫條件語句了。上面是常用的導出,對于壓縮,可用winzip把dmp文件可以很好的壓縮。也可以在上面命令后面加上compress=y來實現(xiàn)。
數(shù)據(jù)的導入
1將D:\\zxcc.dmp中的數(shù)據(jù)導入zxcc數(shù)據(jù)庫中。impkf/zx@zxccfile=d:\\zxcc.dmp
導數(shù)據(jù)得時候,有可能報錯。為什么?有以下主要的原因:
A.導入的對象(表,視圖,方法等)原本不屬于當前連接的用戶的
B.導入的對象在該數(shù)據(jù)庫的指定用戶下已經(jīng)存在
C.導入的對象的原本用戶不再這個數(shù)據(jù)庫里
對于這三個問題的處理方法如下:
a/c、所有對象全部導入到指定的賬戶下:
impkf_new/zx@zxcc_newfile=d:\\zxcc.dmpfromuser=kftouser=kf_new
其中fromuser=kf為.dmp文件里的對象的原先的owner,touser=kf_new為作為導入的對象的新的Owner.
b、忽略/插入數(shù)據(jù):
Impsystem/123456@ATSTestDBfile=c:\\export.dmpignore=y
其中ignore=y告訴imp.exe把數(shù)據(jù)直接插入到相應對象(并且如果導入的對象里面有其他的對象,如約束,索引等,會在數(shù)據(jù)插入后被創(chuàng)建)。
2將d:\\zxcc_tb.dmp中的表tb_operator導入
impkf/zx@zxccfile=d:\\zxcc_tb.dmptables=(tb_operator)
忽略加載約束
有時候?qū)?shù)據(jù)進來的時候,我們不需要把它的約束,比如一些外鍵約束等都導進來,可以加上參數(shù)constraints=N
不加載索引(比如唯一性的索引),可以加上參數(shù)indexs=N
只加載結(jié)構(gòu),不加載數(shù)據(jù),如果只要表的結(jié)構(gòu)等定義(約束,觸發(fā)器),那么不要里面的數(shù)據(jù),可以加上參數(shù)rows=N
對于上述操作登陸操作的對象system是管理員,如果不是管理員,而是普通用戶,那么這個用戶必須有創(chuàng)建刪除對象的權(quán)利,對象可能包括表,視圖,方法,存儲過程等等常見的對象。為什么“可能”包括?因為這個視導入導出的時候是否涉及相關類型的對象而定。
Impkf/zx@zxcc_newfile=d:\\zxcc.dmpfromuser=kftouser=kf_newignore=y
基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然后導入。
注意:
操作者要有足夠的權(quán)限,權(quán)限不夠它會提示。
數(shù)據(jù)庫鏈接正常,可以用tnspingzxcc來獲得數(shù)據(jù)庫zxcc能否連上。
導入/導出數(shù)據(jù)庫時注意字符集。可能會出現(xiàn)導出/導入時數(shù)據(jù)庫字符集不一致而報錯。
oracle數(shù)據(jù)庫其他常用命令:
1、給用戶增加導入數(shù)據(jù)權(quán)限的操作第一,啟動sql*puls
第二,以管理員(DBA)用戶登陸第三,createuser用戶名IDENTIFIEDBY密碼(如果已經(jīng)創(chuàng)建過用戶,這步可以省略)第四,GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,DROPANY
VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATESESSIONTO用戶名字
第五,運行-cmd-進入dmp文件所在的目錄,
impuserid=管理員用戶名/密碼full=yfile=*.dmp
或者impuserid=管理員用戶名/密碼full=yfile=filename.dmp
2、Oracle不允許直接改變表的擁有者,利用Export/Import可以達到這一目的.先建立.par文件,
然后,使用時命令如下:impparfile=/filepath/import9.par例import9.par內(nèi)容如下:FROMUSER=user
TOUSER=user_new(注:把表的擁有者由FROMUSER改為TOUSER,F(xiàn)ROMUSER和TOUSER的用戶可以不同)ROWS=YINDEXES=YGRANTS=Y
CONSTRAINTS=YBUFFER=409600
file==/filepath/xxxx.dmplog==/filepath/import_log.log學會使用oracle相關命令方法會給我們的工作帶來便利,遇到問題可以迅速的解決,而不用再baidu出來的海量信息中區(qū)找解決方法。希望本文能夠?qū)Υ蠹矣兴鶐椭?/p>
擴展閱讀:Oracle數(shù)據(jù)庫導入導出命令總結(jié)
執(zhí)行環(huán)境:可以在SQLPLUS.EXE或者DOS(命令行)中執(zhí)行,
DOS中可以執(zhí)行時由于在oracle中,安裝目錄\\ora9i\\BIN被設置為全局路徑,該目錄下有EXP.EXE與IMP.EXE文件被用來執(zhí)行導入導出。oracle用java編寫,SQLPLUS.EXE、EXP.EXE、IMP.EXE這兩個文件是被包裝后的類文件。SQLPLUS.EXE調(diào)用EXP.EXE、IMP.EXE所包裹的類,完成導入導出功能。
下面介紹的是導入導出的實例。數(shù)據(jù)導出:
1將數(shù)據(jù)庫zxcc完全導出,用戶名kf密碼zx導出到D:\\zxcc.dmp中expkf/zx@zxccfile=d:\\zxcc.dmpfull=y
full=y表示全庫導出。full總共有2個可選項yes(y)/no(n),缺省情況下full=no,這時只會將該用戶下的對象導出。
2將數(shù)據(jù)庫zxcc中kf用戶與cc用戶的表導出expkf/zx@zxccfile=d:\\zxcc_ur.dmpowner=(kf,cc)
full方式可以備份所有用戶的數(shù)據(jù)庫對象,包括表空間、用戶信息等,owner=XX只能備份指定用戶的對象,其他用戶下的就不備份了,EXP中full=y和owner=XX是不能同時使用的。
3將數(shù)據(jù)庫zxcc中的表kf_operator、kf_role導出
expkf/zx@zxccfile=d:\\zxcc_tb.dmptables=(kf_operator,kf_role)
tables=xx表示備份相關表,不能同時和owner、full使用。
4將數(shù)據(jù)庫中的表kf_operator中的字段oper_id以"00"打頭的數(shù)據(jù)導出
expkf/zx@zxccfile=d:\\zxcc_t.dmptables=(kf_operator)query=\\"whereoper_idlike"00%"\\"
query主要是導出合適條件的數(shù)據(jù)。使用該參數(shù)時,需要注意對所有操作系統(tǒng)保留字符都要使用轉(zhuǎn)義符號。若有括號()也需要轉(zhuǎn)義:
query=\\"wheredt=to_date\\(\"201*-09-22\",\"yyyy-mm-dd\"\\)\\"。
如果遇到條件比較繁瑣的語句,頻繁的轉(zhuǎn)義操作不僅費時,還很容易出錯。我們可以使用exp或expdp的PARFILE參數(shù)避免query內(nèi)容的繁瑣轉(zhuǎn)義問題。例:
oracleDBALNP01>cat>zxcc.partables=kf_operatorfile=zxcc.dmp
query="wheredt_time=to_date("201*-06-25","yyyy-mm-dd")"這時就可以盡情的再雙引號中寫條件語句了。上面是常用的導出,對于壓縮,可用winzip把dmp文件可以很好的壓縮。也可以在上面命令后面加上compress=y來實現(xiàn)。
數(shù)據(jù)的導入
1將D:\\zxcc.dmp中的數(shù)據(jù)導入zxcc數(shù)據(jù)庫中。impkf/zx@zxccfile=d:\\zxcc.dmp
導數(shù)據(jù)得時候,有可能報錯。為什么?有以下主要的原因:
A.導入的對象(表,視圖,方法等)原本不屬于當前連接的用戶的
B.導入的對象在該數(shù)據(jù)庫的指定用戶下已經(jīng)存在
C.導入的對象的原本用戶不再這個數(shù)據(jù)庫里
對于這三個問題的處理方法如下:
a/c、所有對象全部導入到指定的賬戶下:
impkf_new/zx@zxcc_newfile=d:\\zxcc.dmpfromuser=kftouser=kf_new
其中fromuser=kf為.dmp文件里的對象的原先的owner,touser=kf_new為作為導入的對象的新的Owner.
b、忽略/插入數(shù)據(jù):
Impsystem/123456@ATSTestDBfile=c:\\export.dmpignore=y
其中ignore=y告訴imp.exe把數(shù)據(jù)直接插入到相應對象(并且如果導入的對象里面有其他的對象,如約束,索引等,會在數(shù)據(jù)插入后被創(chuàng)建)。
2將d:\\zxcc_tb.dmp中的表tb_operator導入
impkf/zx@zxccfile=d:\\zxcc_tb.dmptables=(tb_operator)
忽略加載約束
有時候?qū)?shù)據(jù)進來的時候,我們不需要把它的約束,比如一些外鍵約束等都導進來,可以加上參數(shù)constraints=N
不加載索引(比如唯一性的索引),可以加上參數(shù)indexs=N
只加載結(jié)構(gòu),不加載數(shù)據(jù),如果只要表的結(jié)構(gòu)等定義(約束,觸發(fā)器),那么不要里面的數(shù)據(jù),可以加上參數(shù)rows=N
對于上述操作登陸操作的對象system是管理員,如果不是管理員,而是普通用戶,那么這個用戶必須有創(chuàng)建刪除對象的權(quán)利,對象可能包括表,視圖,方法,存儲過程等等常見的對象。為什么“可能”包括?因為這個視導入導出的時候是否涉及相關類型的對象而定。
Impkf/zx@zxcc_newfile=d:\\zxcc.dmpfromuser=kftouser=kf_newignore=y
基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然后導入。
注意:
操作者要有足夠的權(quán)限,權(quán)限不夠它會提示。
數(shù)據(jù)庫鏈接正常,可以用tnspingzxcc來獲得數(shù)據(jù)庫zxcc能否連上。
導入/導出數(shù)據(jù)庫時注意字符集?赡軙霈F(xiàn)導出/導入時數(shù)據(jù)庫字符集不一致而報錯。
oracle數(shù)據(jù)庫其他常用命令:
1、給用戶增加導入數(shù)據(jù)權(quán)限的操作第一,啟動sql*puls
第二,以管理員(DBA)用戶登陸第三,createuser用戶名IDENTIFIEDBY密碼(如果已經(jīng)創(chuàng)建過用戶,這步可以省略)第四,GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,DROPANY
VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATESESSIONTO用戶名字
第五,運行-cmd-進入dmp文件所在的目錄,
impuserid=管理員用戶名/密碼full=yfile=*.dmp
或者impuserid=管理員用戶名/密碼full=yfile=filename.dmp
2、Oracle不允許直接改變表的擁有者,利用Export/Import可以達到這一目的.先建立.par文件,
然后,使用時命令如下:impparfile=/filepath/import9.par例import9.par內(nèi)容如下:FROMUSER=user
TOUSER=user_new(注:把表的擁有者由FROMUSER改為TOUSER,F(xiàn)ROMUSER和TOUSER的用戶可以不同)ROWS=YINDEXES=YGRANTS=Y
CONSTRAINTS=YBUFFER=409600
file==/filepath/xxxx.dmplog==/filepath/import_log.log學會使用oracle相關命令方法會給我們的工作帶來便利,遇到問題可以迅速的解決,而不用再baidu出來的海量信息中區(qū)找解決方法。希望本文能夠?qū)Υ蠹矣兴鶐椭?/p>
友情提示:本文中關于《Oracle數(shù)據(jù)庫導入導出命令總結(jié)》給出的范例僅供您參考拓展思維使用,Oracle數(shù)據(jù)庫導入導出命令總結(jié):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。