我正在尝试编写一个Python脚本,该脚本将从Excel文档中读取数据,然后将其写入Oracle数据库中的单个表中.我目前正在使用xlrd从Excel文档中读取,并使用cx_Oracle将数据插入数据库中.
我以前使用嵌套的for循环结构来完成此操作,以遍历Excel doc中的每一列,将每一列的值存储在变量中,将值插入表中,然后对每一行执行此操作.但是,这对于几千行数据而言效率很低,我正在使用带有cx_Oracle的executemany()语句来做到这一点.
我目前正在使用此代码将数据加载到列表列表中,然后调用executemany()命令:
rows = []
for rownum in range (sh1.nrows):
column_value = sh1.row_values(rownum)
EMPLOYEE = column_value[1]
ITEM_DATE = column_value[2]
HOURS = column_value[3]
row = [EMPLOYEE, ITEM_DATE, HOURS]
rows.append(row)
query ="""INSERT INTO TABLE1 (EMPLOYEE, ITEM_DATE, HOURS) VALUES (:1, :2, :2)"""
# executemany by passing list rows with tuples (EMPLOYEE, ITEM_DATE, HOURS)
cursor.executemany(query, rows)
行列表如下所示:
[[u'Employee 1', 10000.0, 8.0], [u'Employee 1', 10001.0, 8.0]