Python cx_Oracle用qmark编写语句

时间:2014-05-23 12:53:48

标签: python oracle cx-oracle

我正在尝试使用cx_Oracle,但它似乎不喜欢我对db-api的了解。

这些陈述起作用:

cur.execute('INSERT INTO "testdboz" ("id", "sessionid") VALUES (2, 123)')
cur.execute('INSERT INTO "testdboz" ("id", "sessionid") VALUES (:id, :sid)', 
            {'id':1, 'sid':13})
cur.execute('INSERT INTO "testdboz" ("id", "sessionid") VALUES (:1, :2)', [1123, 123])

然而,这失败了:

cur.execute('INSERT INTO "testdboz" ("id", "sessionid") VALUES (?, ?)', [1, 123])

上述内容失败了:

---------------------------------------------------------------------------
DatabaseError                             Traceback (most recent call last)
<ipython-input-17-4e9fe350f968> in <module>()
----> 1 cur.execute('INSERT INTO "testdboz" ("id", "sessionid") VALUES (?, ?)', [1, 123])

DatabaseError: ORA-01036: illegal variable name/number

有没有办法纠正这个陈述? cx_Oracle是否支持qmark

1 个答案:

答案 0 :(得分:0)

可悲的是,我找到了答案here ......

  

您无法真正选择想要使用的paramstyle。神谕   仅本机支持命名和数字参数和cx_Oracle   支持这两者。