使用 Python 将数据插入 Oracle table

Inserting data into Oracle table with Python

我知道这是一个非常简单的问题,但我很困惑。使用 Python 通过 SQLDeveloper 将一大块数据插入到我的 Oracle table 时我成功了,但是当我还尝试插入一些额外的值时它失败了。

我有一个 23 行 5 列的 DataFrame,我可以轻松地将其导出到我的 Oracle table。我还想用单个值 "NEFS 2" 填充我的 table 的一列,用另一个值“1”填充另一列,但我无法成功执行两个导出。

这是我的导出代码:

cursor = con.cursor()
exported_data = [tuple(x) for x in df_Quota.values]
sql_query = (("INSERT INTO ROUGHTABLE(species, date_posted, stock_id, pounds, money)" "VALUES (:1, :2, :3, :4, :5)"), ("INSERT INTO ROUGHTABLE(sector_name, ask)" "VALUES (NEFS 2, 1)"))
cursor.executemany(sql_query, exported_data)
con.commit()

cursor.close()
con.close()

它在行 cursor.executemany(sql_query, exported_data) 上失败,错误为 TypeError: expecting string or bytes object

我是否需要将 sql_query 分成两个不同的语句?如果是这样,我是否需要有两个不同的 cursor.executemany 语句?还是比这更大的问题?原谅我是SQL的新手。并感谢您的帮助。

据我了解,您想用值 (:1, : 2, :3, :4, :5, 'NEFS 2', 1).如果是这样的话,需要的 SQL 是:

INSERT INTO ROUGHTABLE(species, date_posted, stock_id, pounds, money, sector_name, ask) 
VALUES (:1, :2, :3, :4, :5, 'NEFS 2', 1)

python 代码的第 3 行应该是:

sql_query = "INSERT INTO ROUGHTABLE (species, date_posted, stock_id, pounds, money, sector_name, ask) VALUES (:1, :2, :3, :4, :5, 'NEFS 2', 1)"