cursor.execute("SELECT * FROM t WHERE c1=:2 AND c2=:1", (1, 2))
作爲的Python cx_oracle通過位置綁定變量忽略號碼
SELECT * FROM t WHERE c1=1 AND c2=2
代替
SELECT * FROM t WHERE c1=2 AND c2=1
如我所料被執行。爲什麼?
其實所有的:數字被完全忽略
sql = ":5, :0, :0, :2, :1, :3"
解釋一樣
sql = ":1, :2, :3, :4, :5, :6"
被故意或者錯誤是什麼?
我猜cx_oracle總是以相同的方式計算這些綁定,從1開始。不過,您可以使用命名綁定。我發現它們也更清晰。 – MKesper