You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用cx_Oracle执行UPDATE语句触发ORA-01036错误排查

问题原因及解决方法
  • 错误根源:参数传递格式错误
    你在执行cursor.execute()时,给参数额外套了一层括号,导致驱动无法正确识别绑定变量的数量和位置。原代码里的([pre_after_price, volume, ticker])是一个包含单个列表元素的元组,而Oracle数据库驱动期望接收的是一维的参数序列(直接的列表或元组)。

  • 修正后的执行代码:

    # 使用一维列表传递参数
    cursor.execute(upd, [pre_after_price, volume, ticker])
    
    # 或者使用元组格式(推荐,因为元组不可变更安全)
    cursor.execute(upd, (pre_after_price, volume, ticker))
    
  • 补充说明:
    你的UPDATE语句采用的是位置绑定变量:1、:2、:3,这种绑定方式要求传入的参数序列长度和绑定变量数量严格匹配。只要去掉外层多余的括号,让参数直接以一维列表或元组传入,就能解决ORA-01036: illegal variable name/number的错误。

内容的提问来源于stack exchange,提问作者Landon Statis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:30:43