使用cx_Oracle 把文件导入数据库 (CLOB)

教练有200多个文件需要以clob的形式写到数据库中,一个个导不现实,我来个脚本帮忙

#!/usr/bin/env python
#encoding:utf-8
#@author rikugun

# 帮助使用 python clob_demo.py "/data/*.log"的方式来执行



import cx_Oracle
import sys
import glob


DSN='''rikugun/rikugun@orcl'''
sql='''insert into clob_table (filename,data) values (:1,:2)'''


def file2clob(filename,conn):
    """将文件导入数据库"""
    cur=conn.cursor()
    clob_data=cur.var(cx_Oracle.CLOB)
    f= open(filename,'r').read()
    clob_data.setvalue(0,f)
    cur.execute(sql,(filename,clob_data))


def main():
    """docstring for main"""
    conn=cx_Oracle.connect(DSN) 
    dirpath=sys.argv[1]
    #dirpath 比如 /data/*.log
    for item in glob.glob(dirpath):
        print u'正在导入文件%s' % item
        file2clob(item,conn)
    conn.commit()
 
 
   
if __name__ == '__main__':
    main()







猜你喜欢

转载自rikugun.iteye.com/blog/1686439
今日推荐