【发布时间】:2019-08-07 17:46:39
【问题描述】:
我的原始数据为:
id = 2345
id_num = 3,6,343,32
我需要通过 cx_Oracle 连接将上述两个参数作为 ORACLE SQL 查询中的参数传递为:
query = “””
select * from mytable where pid = 2345 and id_num in (3,6,343,32)
“””
我正在创建一个字典:
sparm = {}
sparm['pid'] = id
sparm['idnum'] = id_num
并尝试将其用作:
query = “””
select * from mytable where pid = :pid and id_num in :idnum
“””
df = pd.read_sql(query, con=conct, params=sparm)
没有成功。
:pid 有效,但 :idnum 无效。任何建议将不胜感激。
【问题讨论】:
-
好的,我把 sparm['idnum'] = id_num 改成了 sparm['idnum'] = list(id_num.split(",")) 把它转换成一个列表。现在,我得到一个 Oracle 错误:ORA-01484:数组只能绑定到 PL/SQL 语句。