美文网首页我爱编程
四行python代码实现oracle数据库dmp文件批量导入

四行python代码实现oracle数据库dmp文件批量导入

作者: 石志不渝 | 来源:发表于2018-03-02 10:48 被阅读0次

    写在最前面

    由于一些特殊的原因,我们可能需要向oracle中导入大量的dmp文件,我本次导入的dmp文件量为115个,总计45.4G。
    我选择用python编写批量导入脚本进行导入,不想在plsql中点三四百多次。
    你最好准备一包喝茶瓜子和一杯好茶。导入过程还是很耗资源的,看电脑情况吧,我的电脑在导入的时候我只能喝茶嗑瓜子~

    友情提示:如果你想直接看代码,可以直接把滚动条拉到最下面。

    环境

    1.操作系统: window10
    2.已经安装oracle服务端及客户端,oracle版本:11g
    3.python版本:3.6

    总的思想

    说起来做起来都很简单。思路是把所有dmp放在一个文件夹里,之后python遍历所有文件并执行oracle导入命令。

    具体实现

    1.首先,oracle的dmp导入命令需要搞明白。命令的形式如下:

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

    1.1 [username] [password] 是oracle数据库的用户名密码;
    1.2 [ip] 是远程数据库地址,如果是本地库,则为127.0.0.1
    1.3 [sid]为数据库sid
    1.4 [dmp address] 为dmp文件的绝对地址
    比如,我的oracle数据库 sid 为orcl,用户名为 test 密码为 123,本地库,dmp文件地址d:\dmp\1.dmp。
    那么直接在cmd命令中执行如下代码,可完成1.dmp文件的导入:

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

    2.具体代码,注释应该已经足够明白

    import os  #引入os包
    
    if __name__ == '__main__':
        #遍历文件夹下所有的dmp文件,其中filename为所有文件、文件夹的名称。
        #因为我文件夹下确定都是dmp文件,所以无需进行特殊判断
        for filename in os.listdir("D:\dmp"):
            # 调用cmd窗口,并执行dmp的导入命令
            # 因为dmp文件数据量太大,我选择一条一条的去执行,就是如此,电脑已经打字都卡了
            os.system("imp orcl/123456@127.0.0.1/zrr file=\"D:\dmp\\"+filename+"\" full=y ignore=y")
    

    3.执行python脚本
    我使用vscode进行编辑的,python脚本路径为d:/python/orclImport.py。所以,直接cmd窗口运行命令:

    python d:/python/orclImport.py

    最最后,拿出我们的神器,瓜子和茶,惬意的等着黑窗口执行完成吧

    转载请注明出处

    相关文章

      网友评论

        本文标题:四行python代码实现oracle数据库dmp文件批量导入

        本文链接:https://www.haomeiwen.com/subject/vmwoxftx.html