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

Oracle 12c Service Bus运行SQL报Missing IN或OUT参数错误咨询

报错原因排查
  • 参数映射遗漏:Oracle Service Bus的JDBC调用要求所有SQL中出现的绑定变量都必须配置对应的入参映射,你当前SQL涉及三个绑定变量::tipo、:posicao以及你提到的:codigo,任意一个变量没有配置传值都会触发该报错。
  • 变量匹配规则问题:OSB的JDBC绑定默认按位置顺序匹配参数,而非变量名匹配,如果OSB侧配置的参数传递顺序和SQL中变量出现的顺序不一致,会导致参数识别失败。
  • SQL语法错误:你提供的SQL中WHERE子句存在括号配对错误,注释掉的变量判断行导致逻辑块括号缺失,SQL解析器无法正确识别绑定变量的位置,进而报错。
  • 变量名不统一:你问题中提到的变量名是:codigo,但SQL中实际使用的变量名是:posicao,如果OSB侧传参的变量名和SQL实际使用的变量名不一致,也会导致参数找不到。
解决方法
  • 首先修正SQL语法,调整WHERE子句的括号配对,规范条件逻辑,修正后的SQL参考如下:
SELECT Resultado_Ensaio.Amos_Cd_Tipo_Local, Resultado_Ensaio.Amos_Cd_Loc_Amostg, Resultado_Ensaio.Prod_Cd_Id, Resultado_Ensaio.Amos_Dh_Amostra,
      Resultado_Ensaio.Reen_Md_Res_Num, Componente_Gas_Nat.Cpgn_Nm_Abreviado,
      Caract_Produto.Capr_Nm_Completo,
      Unidade_Medida_Emq.Unme_Sg_Notacao, Metodo_Ensaio.Prme_Cd_Id, Metodo_Ensaio.Meen_Cd_Id,
      Resultado_Ensaio.Reen_Cd_Res_Alfa_E, Resultado_Ensaio.Tiam_Cd_Id, Caract_Produto.Capr_Cd_Comp_Carac,
      Caract_Produto.Capr_Cd_Id
      , Ce.AMOS_NR_CERT_QUAL, Ce.AMOS_DT_CERT_QUAL
  FROM Caract_Produto
  INNER JOIN Resultado_Ensaio ON (Caract_Produto.Capr_Cd_Id = Resultado_Ensaio.Capr_Cd_Id
      AND Caract_Produto.Capr_Cd_Comp_Carac = Resultado_Ensaio.Capr_Cd_Comp_Carac
      AND Caract_Produto.Grcp_Cd_Id = Resultado_Ensaio.Grcp_Cd_Id)
  INNER JOIN Metodo_Ensaio ON (Metodo_Ensaio.Meen_Cd_Id = Resultado_Ensaio.Meen_Cd_Id
      AND Metodo_Ensaio.Prme_Cd_Id = Resultado_Ensaio.Prme_Cd_Id)
  INNER JOIN Unidade_Medida_Emq Unidade_Medida_Emq ON (Unidade_Medida_Emq.Gume_Cd_Id = Resultado_Ensaio.Gume_Cd_Id
      AND Unidade_Medida_Emq.Unme_Cd_Id = Resultado_Ensaio.Unme_Cd_Id)
  LEFT JOIN Caract_Produto_Componente ON (Caract_Produto_Componente.Grcp_Cd_Id = Resultado_Ensaio.Grcp_Cd_Id
      AND Caract_Produto_Componente.Capr_Cd_Id = Resultado_Ensaio.Capr_Cd_Id
      AND Caract_Produto_Componente.Capr_Cd_Comp_Carac = Resultado_Ensaio.Capr_Cd_Comp_Carac)
  LEFT JOIN Componente_Gas_Nat ON (Caract_Produto_Componente.Cpgn_Cd_Id = Componente_Gas_Nat.Cpgn_Cd_Id)
  LEFT JOIN Certificado_Ensaio Ce ON (Resultado_Ensaio.Amos_Cd_Loc_Amostg = Ce.AMOS_CD_LOC_AMOSTG
      AND Resultado_Ensaio.Amos_Cd_Tipo_Local = Ce.AMOS_CD_TIPO_LOCAL
      AND Resultado_Ensaio.Amos_Dh_Amostra = Ce.AMOS_DH_AMOSTRA
      AND Resultado_Ensaio.Tiam_Cd_Id = Ce.TIAM_CD_ID
      AND Resultado_Ensaio.Prod_Cd_Id = Ce.PROD_CD_ID
      AND Resultado_Ensaio.Prco_Cd_Comp_Prod = Ce.PRCO_CD_COMP_PROD
      AND Resultado_Ensaio.Orga_Cd_Cbi_Exec = Ce.ORGA_CD_CBI_EXEC)
  WHERE
      Resultado_Ensaio.Amos_Cd_Tipo_Local    = (:tipo)
      AND (
          (UPPER(:posicao) = 'U' AND
              Resultado_Ensaio.Amos_Dh_Amostra       = (
                      SELECT MAX(Reen2.Amos_Dh_Amostra)
                      FROM Resultado_Ensaio Reen2
                      WHERE Resultado_Ensaio.Amos_Cd_Loc_Amostg = Reen2.Amos_Cd_Loc_Amostg
                          AND Resultado_Ensaio.Amos_Cd_Tipo_Local = Reen2.Amos_Cd_Tipo_Local
                          AND Reen2.Amos_Dh_Amostra <= TO_TIMESTAMP('1999-11-01 07:00', 'YYYY-MM-DD HH24:MI:SS')
                  )
          )
          OR
          (UPPER(:posicao) = 'P' AND
                  Resultado_Ensaio.Amos_Dh_Amostra       = (
                      SELECT MIN(Reen2.Amos_Dh_Amostra)
                      FROM Resultado_Ensaio Reen2
                      WHERE Resultado_Ensaio.Amos_Cd_Loc_Amostg = Reen2.Amos_Cd_Loc_Amostg
                          AND Resultado_Ensaio.Amos_Cd_Tipo_Local = Reen2.Amos_Cd_Tipo_Local
                          AND Reen2.Amos_Dh_Amostra >= TO_TIMESTAMP('1999-11-01 07:00', 'YYYY-MM-DD HH24:MI:SS') 
                  )
          )
      )
      AND Resultado_Ensaio.Amos_Cd_Loc_Amostg like '314TQ5901%'
  ORDER BY Resultado_Ensaio.Amos_Dh_Amostra, Resultado_Ensaio.Amos_Cd_Loc_Amostg, Caract_Produto.Capr_Nm_Completo
  • 核对所有绑定变量的名称,统一代码和配置中的变量名,确保OSB侧的数据库调用配置里,所有SQL中用到的变量都有对应的入参映射,没有遗漏。
  • 调整OSB侧的参数传递顺序,和SQL中变量出现的顺序完全一致,适配JDBC位置匹配的规则。
  • 先在PL/SQL Developer等SQL工具中使用绑定变量方式执行SQL,不要硬编码变量值,验证SQL本身的参数逻辑正确后,再排查OSB侧的配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:57:00