我试图定义一个值(id号)列表,并将它们传递给查询Oracle表的SQL。在
只要我只包含一个id,这个代码就可以工作
named_params = {'ids':'123456548'}
query = """
select PEBEMPL_ECLS_CODE
from PEBEMPL
inner join SPRIDEN on spriden_pidm = pebempl_pidm
where SPRIDEN_CHANGE_IND is null
and SPRIDEN_ID in :ids
"""
df = pd.read_sql(query, connection, params=named_params)
传递一个id列表的正确语法是什么?在
例如,此代码不起作用:
^{pr2}$返回错误:
': ORA-01484: arrays can only be bound to PL/SQL statements
我相信你必须把参数作为字符串传递。可以用逗号连接所有要查询的ID,并将其作为字符串发送到SPRIDEN_ID
您需要为列表中的每个项创建一个单独的bind参数,然后将id列表传递到
read_sql()
:为了避免混淆,上面的例子使用Pandas
^{pr2}$read_sql()
函数与Oracle对话。对于直接使用cursor
对象的人来说,语法是:相关问题 更多 >
编程相关推荐