python使用oracle查询数据库,查询语句中使用变量值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python使用oracle查询数据库,查询语句中使用变量值相关的知识,希望对你有一定的参考价值。

代码如下:
import cx_Oracle
def getdata(Item):
conn=cx_Oracle.connect('p00292','pan00292','hsmmdb-rac-scan.uniview.com:1521/HSMM')
cursor= conn.cursor()
cursor.execute('select * from INV.MTL_ITEM_REVISIONS where ROW_ID= %s'% (Item,))
fir=cursor.fetchone()
print fir
getdata('AAAdjoAAzAAABL7AAB')

运行python后显示的错误消息如下:
D:\Python27\python.exe D:/python自动化测试/ceshi1.py
Traceback (most recent call last):
File "D:/python自动化测试/ceshi1.py", line 8, in <module>
getdata('AAAdjoAAzAAABL7AAB')
File "D:/python自动化测试/ceshi1.py", line 5, in getdata
cursor.execute('select * from INV.MTL_ITEM_REVISIONS where ROW_ID= %s'% (Item,))
cx_Oracle.DatabaseError: ORA-00904: "AAADJOAAZAAABL7AAB": invalid identifier
请大神们赐教

参考技术A cursor.execute('select * from INV.MTL_ITEM_REVISIONS where ROW_ID= %s'% (Item,))

换为:
qry_sql = "select * from INV.MTL_ITEM_REVISIONS where ROW_ID= '%s'" % Item
cursor.execute(qry_sql)
参考技术B ROWID值的%s 需要单引号 参考技术C getdata("'AAAdjoAAzAAABL7AAB'")

oracle查询语句中in后面数据较多怎么优化

参考技术A 使用exists替换更有效率

以上是关于python使用oracle查询数据库,查询语句中使用变量值的主要内容,如果未能解决你的问题,请参考以下文章

python SQL模糊查询语句问题

如何在Oracle触发器中使用查询语句

Oracle分页查询语句的写法(转)

ORACLE 快速查询数据SQL语句

oracle查询语句中in后面数据较多怎么优化

如何使用sql语句,查询oracle的表注释等信息?