gpt4 book ai didi

Python cx_Oracle 使用executemany() 加载CSV 给出 "Required argument ' 参数'(pos 2)未找到”

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:59 30 4
gpt4 key购买 nike

我的目的是使用 Python 将 csv 文件加载到 Oracle 表中。

  1. 如果数据已存在,我将截断表 - 这是有效的

  2. 我正在检查计数以进行测试 - 这是有效的

  3. 我正在尝试将数据从文件插入到 Oracle。我遇到问题:

    'Required argument 'parameters' (pos 2) not found'

代码:

import cx_Oracle
import pandas as pd

column_names =
['Col1','Col2','Col3','Col4','Col5','Col6','Col7','Col8','Col9']
df = pd.read_csv(r"C:\Users\file.dat", names=column_names, sep='|')

dsn_tns = cx_Oracle.makedsn('*', '*', sid='*')
conn = cx_Oracle.connect(user='*', password='*', dsn=*)
c = conn.cursor()
c.execute('Truncate table Table_Name')
c.execute('select count(1) from Table_Name')
for row in c:
print(row)
for lines in df:
c = conn.cursor()
print("I want to print lines")
res = c.executemany("""Insert into Code_Extract (OPERATION,
LIST_COUNTRY_ID,LIST_CODE,SOURCE_SYSTEM_CODE,CODE_USUAL,
INT_LIST_CODE,INT_MDM_CODE,CODE_STATUS,MDM_CODE)
Values(df['col1'],df['Col2'],df['Col3'],df['Col4'],df['Col5'],df['Col6'],df['Col7'],df['Col8'],df['Col9'])""")
conn.commit()
c.execute('select count(1) from Table_Name')
for row in c:
print(row)
c.close()
conn.commit()
conn.close()

我的期望是每当我收到文件时,它应该自动从指定路径加载到 Oracle 中。

最佳答案

executemany() 的参数确实是必需的。请参阅documentation了解更多信息。

您已将参数放入 SQL 中,但应将它们指定为绑定(bind)变量,如 values (:1, :2, :3, :4, :5, :6, :7 ,:8,:9)。然后,您可以将数据作为序列列表传递给executemany()。希望这是清楚的!你可以看一个例子here .

关于Python cx_Oracle 使用executemany() 加载CSV 给出 "Required argument ' 参数'(pos 2)未找到”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56394009/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com