设置参数 jdbi 调用时出错



我收到此错误:无法执行语句异常:无法执行,没有与"nroCotizacion"匹配的命名参数,并且没有设置位置 0(JDBC "从 1 开始"方案中为 1)的位置参数...

代码为:

Handle h = null;
    try{
        h = dbi.open();
        String stmt = "{call pkg.test_procedure(:nroCotizacion,:ramo,:tipoVista,:planes)}";
        ResultSet rs = (ResultSet) h.createCall(stmt)
                .bind("p_nuCotizacion", nroCotizacion)
                .bind("p_ramo", ramo)
                .bind("p_tipoVista",tipoVista)
                .bind("p_subproducto",planes)
                .registerOutParameter("v_titulos", OracleTypes.CURSOR)
                .registerOutParameter("v_datos", OracleTypes.CURSOR)
                .invoke();
        List<TituloCoberturaBeneficioTO> titulos = new ArrayList<TituloCoberturaBeneficioTO>();
        ResultSet rs2 = (ResultSet)rs.getObject("v_titulos");
        while(rs2.next()){  ......

我不知道出了什么问题,我是JDBI的新手。

绑定参数名称必须与语句中的参数列表匹配。 例如:

ResultSet rs = ...
...
.bind("nroCotizacion", nroCotizacion)
...

从绑定参数名称中删除p_前缀,或修改语句以使用 p_ 前缀。

相关内容

最新更新