带参数的查询:
>>> named_params = {'dept_id':50, 'sal':1000}
>>> query1 = cursor.execute('SELECT * FROM employees
WHERE department_id=:dept_id AND salary>:sal', named_params)
>>> query2 = cursor.execute('SELECT * FROM employees
WHERE department_id=:dept_id AND salary>:sal', dept_id=50, sal=1000)
这种是名字参数,还可以按位置参数:
r1 = cursor.execute('SELECT * FROM locations
WHERE country_id=:1 AND city=:2', ('US', 'Seattle'))
注意:
当只有一次参数的时候,也要把它写成元组的形式,比如
Cursor.execute(‘select name from user where id=:1’,(login_Id,))
千万要注意,
login_id
后面还带有一个逗号,如果没有逗号,他其实就是一个数
据对象,
但是当他后面有个逗号的时候,
他就变成了元组的一个数据项,
千万要
记住啊,我就是在这里徘徊了很久。!
带参数的查询:
named_params = {'dept_id':50, 'sal':1000}
query1 = cursor.execute('SELECT * FROM employees
WHERE department_id=:dept_id AND salary>:sal', named_params)
query2 = cursor.execute('SELECT * FROM employees
WHERE department_id=:dept_id AND salary>:sal', dept_id=50, sal=1000)
这种是名字参数,还可以按位置参数:
r1 = cursor.execute('SELECT * FROM locations WHERE country_id=:1 AND city=:2', ('US', 'Seattle')) 注意:
当只有一次参数的时候,也要把它写成元组的形式,
比如 Cursor.execute(‘select name from user where id=:1’,(login_Id,))
千万要注意,login_id后面还带有一个逗号,如果没有逗号,他其实就是一个数据对象,但是当他后面有个逗号的时候,他就变成了元组的一个数据项,千万要记住啊,我就是在这里徘徊了很久。!
遇到问题:
1、调用cx_Oracle,做update操作时报错为:ORA-00911: invalid character,查了半天发现是语句多了个";",去掉就没问题,真是坑爹啊!!!
named_params = {'dept_id':50, 'sal':1000}
query1 = cursor.execute('SELECT * FROM employees
WHERE department_id=:dept_id AND salary>:sal', named_params)
query2 = cursor.execute('SELECT * FROM employees
WHERE department_id=:dept_id AND salary>:sal', dept_id=50, sal=1000)
这种是名字参数,还可以按位置参数:
r1 = cursor.execute('SELECT * FROM locations WHERE country_id=:1 AND city=:2', ('US', 'Seattle')) 注意:
当只有一次参数的时候,也要把它写成元组的形式,
比如 Cursor.execute(‘select name from user where id=:1’,(login_Id,))
千万要注意,login_id后面还带有一个逗号,如果没有逗号,他其实就是一个数据对象,但是当他后面有个逗号的时候,他就变成了元组的一个数据项,千万要记住啊,我就是在这里徘徊了很久。!
遇到问题:
1、调用cx_Oracle,做update操作时报错为:ORA-00911: invalid character,查了半天发现是语句多了个";",去掉就没问题,真是坑爹啊!!!