教练有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()