簡體   English   中英

Python cx_Oracle用qmark准備的語句

[英]Python cx_Oracle prepared statement with qmark

我正在嘗試使用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

可悲的是,我在這里找到了答案...

您無法真正選擇想要使用的paramstyle。 Oracle僅本機支持命名和數字參數樣式,而cx_Oracle支持這兩種樣式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM