当前位置:Gxlcms > 数据库问题 > csv导入到数据库(目标参考注释)

csv导入到数据库(目标参考注释)

时间:2021-07-01 10:21:17 帮助过:3人阅读

cx_Oracle as cx import csv #flag是你的日期列在哪一列,默认第一列 def save_data(reader,info,table_data,flag =1): #目标:1、如果数据库中没有数据,那么所有数据都插入 # 2、如果数据库里数据日期大于当前需要插入的数据日期,那么不插入 for i, rows in enumerate(reader): rowsdata = ‘‘ if i > 0: for j in range(len(rows)): rowsdata += \‘ + rows[j] + \‘, #构造values(‘‘,‘‘,‘‘,) rowsdata = rowsdata[:-1] #去掉末尾的 , if info[0][0] is None or info[0][0] < int(rows[flag - 1]): #参照【目标】,info[0][0]就是数据库里最大的,参考file_addr函数的sql cursor.execute("insert into " + table_data + " values( " + rowsdata + ")") #执行导入 conn.commit() def file_addr(): # 有其他表直接再新增函数就可以 f = open(E:/shuju/3.csv) reader = csv.reader(f) sql = select max(oc_date) from reportdata.dw_data_hy cursor.execute(sql) info = cursor.fetchall() save_data(reader,info,table_data,flag=2) #如果不是第一列,在这里加flag f.close() if __name__ == __main__: table_data = dw_data_hy #表名 username = reportdata #数据库名 passwd = reportdata #数据库密码 host = localhost # ip port = 1521 # 端口 sid = orcl #数据库实例名 tns = cx.makedsn(host,port,sid) #tns固定搭配 conn = cx.connect(username,passwd,tns) #数据库连接 cursor = conn.cursor() #启用游标指针 file_addr() print(XXX数据导入成功!)

 

csv导入到数据库(目标参考注释)

标签:cal   sid   into   epo   select   div   exec   端口   rac   

人气教程排行