四行python代碼實(shí)現(xiàn)oracle數(shù)據(jù)庫dmp文件批量導(dǎo)入

寫在最前面

由于一些特殊的原因,我們可能需要向oracle中導(dǎo)入大量的dmp文件,我本次導(dǎo)入的dmp文件量為115個(gè),總計(jì)45.4G。
我選擇用python編寫批量導(dǎo)入腳本進(jìn)行導(dǎo)入,不想在plsql中點(diǎn)三四百多次。
你最好準(zhǔn)備一包喝茶瓜子和一杯好茶。導(dǎo)入過程還是很耗資源的,看電腦情況吧,我的電腦在導(dǎo)入的時(shí)候我只能喝茶嗑瓜子~

友情提示:如果你想直接看代碼,可以直接把滾動條拉到最下面。

環(huán)境

1.操作系統(tǒng): window10
2.已經(jīng)安裝oracle服務(wù)端及客戶端,oracle版本:11g
3.python版本:3.6

總的思想

說起來做起來都很簡單。思路是把所有dmp放在一個(gè)文件夾里,之后python遍歷所有文件并執(zhí)行oracle導(dǎo)入命令。

具體實(shí)現(xiàn)

1.首先,oracle的dmp導(dǎo)入命令需要搞明白。命令的形式如下:

imp [username]/[password]@[ip]/[sid] file="[dmp address]" full=y ignore=y
上述命令中,

1.1 [username] [password] 是oracle數(shù)據(jù)庫的用戶名密碼;
1.2 [ip] 是遠(yuǎn)程數(shù)據(jù)庫地址,如果是本地庫,則為127.0.0.1
1.3 [sid]為數(shù)據(jù)庫sid
1.4 [dmp address] 為dmp文件的絕對地址
比如,我的oracle數(shù)據(jù)庫 sid 為orcl,用戶名為 test 密碼為 123,本地庫,dmp文件地址d:\dmp\1.dmp。
那么直接在cmd命令中執(zhí)行如下代碼,可完成1.dmp文件的導(dǎo)入:

imp test/123@127.0.0.1/orcl file="d:\dmp\1.dmp" full=y ignore=y

2.具體代碼,注釋應(yīng)該已經(jīng)足夠明白

import os  #引入os包

if __name__ == '__main__':
    #遍歷文件夾下所有的dmp文件,其中filename為所有文件、文件夾的名稱。
    #因?yàn)槲椅募A下確定都是dmp文件,所以無需進(jìn)行特殊判斷
    for filename in os.listdir("D:\dmp"):
        # 調(diào)用cmd窗口,并執(zhí)行dmp的導(dǎo)入命令
        # 因?yàn)閐mp文件數(shù)據(jù)量太大,我選擇一條一條的去執(zhí)行,就是如此,電腦已經(jīng)打字都卡了
        os.system("imp orcl/123456@127.0.0.1/zrr file=\"D:\dmp\\"+filename+"\" full=y ignore=y")

3.執(zhí)行python腳本
我使用vscode進(jìn)行編輯的,python腳本路徑為d:/python/orclImport.py。所以,直接cmd窗口運(yùn)行命令:

python d:/python/orclImport.py

最最后,拿出我們的神器,瓜子和茶,愜意的等著黑窗口執(zhí)行完成吧

轉(zhuǎn)載請注明出處
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容