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

Oracle与ADF执行查询报错:Missing IN or OUT parameter at index::2

排查Oracle+ADF中SQL参数缺失错误的原因及解决办法

错误原因

你的SQL查询明确定义了两个绑定变量::p_zipcode_cur和:p_index,但从日志的params: [220051]可以看到,执行查询时仅传入了1个参数。Oracle JDBC驱动要求所有绑定变量都必须被赋值,因此找不到第二个参数(JDBC参数索引从1开始,索引2对应第二个变量),抛出Missing IN or OUT parameter at index:: 2错误。

解决办法

  • 检查ADF绑定配置:在ADF的Page Definition文件或Application Module实现类中,确认该查询的两个绑定变量p_zipcode_cur和p_index都已正确配置参数来源,比如关联页面输入组件、后台Bean属性或固定值。
  • 核对参数传递代码:如果是通过Java代码手动执行该SQL(如使用PreparedStatement或ADF的DBTransaction),检查代码是否遗漏了对:p_index的赋值。示例:
    // 错误:仅设置了一个参数
    pstmt.setLong(1, 220051);
    // 正确:为两个变量分别赋值
    pstmt.setLong(1, zipcodeCurValue); // 对应:p_zipcode_cur
    pstmt.setInt(2, indexValue);       // 对应:p_index
    
  • 验证变量名一致性:确保SQL中的变量名与ADF配置/代码中使用的名称完全一致,注意ADF绑定变量名可能区分大小写,需严格匹配。
  • 调整动态参数逻辑:如果:p_index是动态生效的参数,不要直接在SQL中写条件分支,而是通过ADF视图对象的动态过滤条件或动态SQL构建工具处理,避免出现变量未绑定的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:25:34