gpt4 book ai didi

python - 使用带有 IN 语句的 cx_Oracle (Python 3)

转载 作者:行者123 更新时间:2023-12-05 06:30:37 25 4
gpt4 key购买 nike

我正在尝试使用 cx_Oracle 将参数传递到 SQL“IN”语句中。这给出了正确的结果:

sql = """select * from
(select level numb from dual connect by level <= 4)
where numb = :var"""

print([row[0] for row in cur.execute(sql, (1,))])
Output: [1]

但是我一直无法弄清楚如何使用“IN”语句。

sql = """select * from
(select level numb from dual connect by level <= 4)
where numb in :var"""

print([row[0] for row in cur.execute(sql, (1, 2))])
Output: cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number

我已经尝试过 IN 语句的变体,也尝试过使用字典来传递参数。

最佳答案

当使用单个值或文字时,SQL 中的 IN 子句需要用括号括起来的值。由于您传递了两个参数,因此在括号内包含两个占位符。

sql = """select * from
(select level numb from dual connect by level <= 4)
where numb in (:1, :2)"""

print([row[0] for row in cur.execute(sql, (1, 2))])

关于python - 使用带有 IN 语句的 cx_Oracle (Python 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52208783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com