擅长:python、mysql、java
<p>@ffarquest说cxúu Oracle不支持使用字典,但事实上,@giovanni de ciantis只是不正确地使用了字典。</p>
<hr/>
<pre><code>named_params = {'dept_id':50, 'sal':1000}
query1 = cursor.execute(
'SELECT * FROM employees WHERE department_id=:dept_id AND salary>:sal',
named_params
)
</code></pre>
<p>或者</p>
<pre><code>query2 = cursor.execute(
'SELECT * FROM employees WHERE department_id=:dept_id AND salary>:sal',
dept_id=50,
sal=1000
)
</code></pre>
<hr/>
<p>在给定的示例中,我认为对<code>:bind</code>的第二个引用需要替换为其他引用,因为它不是按顺序完成的。另外,重命名变量<code>bind</code>以消除混淆。</p>
<pre><code>bind_dict = {bind:"var" : diff:"ciao"}
sql = "select * from sometable where somefield=:bind and otherfield=:diff"
cur.prepare(sql)
cur.execute(sql, bind_dict )
</code></pre>
<hr/>
<p>本文来自2007年,说明您可以使用字典:
<a href="http://www.oracle.com/technetwork/articles/dsl/prez-python-queries-101587.html" rel="nofollow noreferrer">http://www.oracle.com/technetwork/articles/dsl/prez-python-queries-101587.html</a></p>