是否可以将变量绑定到Pandas.read_sql语句中使用的SQLAlchemy查询?
在WHERE子句中使用%s不起作用,并且cx_Oracle的文档指出:
cursor.execute('SELECT * FROM FROM where WHERE department_id =:dept_id)
在熊猫中不建议直接使用cx_Oracle驱动程序,这不是可行的选择。
我有一个组列表,我需要遍历WHERE语句,因为SELECT *的内存太大,无法在单个PC上处理。
示例:
SELECT *
FROM DUAL
WHERE GROUP_NAME = %s
返回此错误:
(cx_Oracle.DatabaseError)ORA-00911:无效字符 ... WHERE GROUP_NAME =%s
答案 0 :(得分:1)
您可以看到here,cx_Oracle.paramstyle
是named
而不是format
。根据{{3}},对于:name
named
,您必须使用paramstyle
语法:
import pandas as pd
sql = '''
SELECT *
FROM DUAL
WHERE GROUP_NAME = :name
'''
df = pd.read_sql(sql, params={'name': the_name_you_want})