我是一个Python新手,我在使用绑定变量时遇到了麻烦.如果我执行下面的代码一切正常.
bind= {"var" : "ciao"}
sql = "select * from sometable where somefield = :bind"
cur.prepare(sql)
cur.execute(sql,bind)
Run Code Online (Sandbox Code Playgroud)
相反,如果我添加另一个绑定变量,我得到一个错误.
bind= {"var" : "ciao"}
sql = "select * from sometable where somefield = :bind and otherfield = :bind"
cur.prepare(sql)
cur.execute(sql,(bind,bind))
cur.execute(sql,(bind,bind))
Oracle.NotSupportedError: Variable_TypeByValue(): unhandled data
Run Code Online (Sandbox Code Playgroud)
我用它解决了
cur.execute(sql,(bind["var"],bind["var"]))
Run Code Online (Sandbox Code Playgroud)
但我无法理解为什么以前的命令不行.
哪个是使用绑定变量的正确方法?我正在使用cx_Oracle.