繁体   English   中英

Python - cx_oracle 更新抛出 ORA-01036

[英]Python - cx_oracle Update throws ORA-01036

我们的 UPDATE 语句如下所示:

upd = """UPDATE prices \
         SET pre_after_price = :1, \
             volume = :2, \
             pre_after_updated = SYSDATE + INTERVAL '1' HOUR \
         WHERE ticker = :3"""

然后,实际的代码是这样的:

cursor.execute(upd,([pre_after_price, volume, ticker]))

但是,我们得到了这个错误:

ORA-01036: illegal variable name/number
dpiStmt_bindByPos: bind by position

我们做错了什么吗?

您可以先发出此声明:

cursor.prepare(upd)
print("bind names:", cursor.bindnames())

这应该告诉您预期哪些绑定名称!

如果您使用新的 python-oracledb 精简模式(cx_Oracle 的替代品),cursor.execute() 会提供有关缺失或不正确的更多有用信息。 如果您不了解新驱动程序,我建议您检查一下! https://oracle.github.io/python-oracledb/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM