带参数的查询:

 

>>> 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,查了半天发现是语句多了个";",去掉就没问题,真是坑爹啊!!!
10-05 07:00