怎样oracle中删除元组,Python-CX-u-Oracle:如何在另一个查询中使用返回的元组

我用cx_Oracle用Python查询我的数据库。我有一个查询返回多个结果。在cx Oracle中,对返回多个结果的查询使用.fetchall()命令将每一行放入一个元组中,然后生成一个元组列表(每个返回行1个)。

获取查询结果后,其格式如下:

[('R100',), ('R200',)]

现在我想在另一个查询中使用这些结果。下一个查询如下:

base_query = "select MODEL from USER.TABLE where SERIES in :series"

其中:series是一个特殊的参数标记,当您像这样执行查询时可以替换它:

cursor.execute(base_query, series=[('R100',), ('R200',)])

当我试图将series设置为元组列表时,出现以下错误:

cx_Oracle.NotSupportedError: element 0 value is unsupported

我知道这可能是一个语法问题,因为在原始SQL中,我尝试创建的查询可能如下所示:

base_query = "select MODEL from USER.TABLE where SERIES in [('R100',), ('R200',)]"

当我真正想要的是:

base_query = "select MODEL from USER.TABLE where SERIES in ('R100','R200')

我很难让解析后的原始查询看起来像第二个示例,因为我不确定python数据类型是如何解释的(我猜我的第一个示例甚至不能正确解释原始SQL的外观)

更新:

所以我认为你应该可以通过以下方式来做到:

cursor.executemany(base_query, [('R100',), ('R200',)])

但是我得到一个错误:cx_Oracle.DatabaseError: DPI-1013: not supported

我在cxu oracle 7.0.0版上,想弄清楚我的数据库现在是什么版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值