使用python cx_oracle会话池将值插入到oracle表中



有人能帮助如何使用python cx_oracle会话池将单行插入oracle表中吗?我看到下面的代码有一些问题。

Type error: expecting string or object
Name Null? Type        
---- ----- ------------
ID         NUMBER(38)  
NAME       VARCHAR2(30)

我可以看到您的代码有两个问题。

第一个原因是您没有正确调用cursor.execute。您正在行中创建一个元组

sql=("insert into exm(id,name) values(:1, :2)", rows)

然后将其传递给

cursor.execute(sql)

这与运行以下行的效果相同(注意额外的括号(:

cursor.execute(("insert into exm(id,name) values(:1, :2)", rows))

当你真的想运行这行时,它没有额外的括号:

cursor.execute("insert into exm(id,name) values(:1, :2)", rows)

我建议您将sql设置为仅针对数据库运行的SQL字符串,并将rows分别传递给cursor.execute

sql="insert into exm(id,name) values(:1, :2)"
cursor.execute(sql, rows)

第二个问题是,您似乎希望同时插入多行。您可以通过将变量命名为rows并为其分配一个元组的单元素列表来提示这一点。要同时插入多行,您需要使用cursor.executemany,而不是cursor.execute:

sql="insert into exm(id,name) values(:1, :2)"
cursor.executemany(sql, rows)

相关内容

  • 没有找到相关文章

最新更新