Oracle 无法确定正确的调用签名-使用SimpleJDBCall时出现多个过程/函数/签名错误
这是我的DAO代码Oracle 无法确定正确的调用签名-使用SimpleJDBCall时出现多个过程/函数/签名错误,oracle,spring-mvc,spring-jdbc,Oracle,Spring Mvc,Spring Jdbc,这是我的DAO代码 this.calcRTRDetails = new SimpleJdbcCall(dataSource).withCatalogName("score_rtr"). withProcedureName("calc_rtr_dtls").declareParameters( new SqlParameter("p_repy_track", Types.ARRAY)
this.calcRTRDetails = new SimpleJdbcCall(dataSource).withCatalogName("score_rtr").
withProcedureName("calc_rtr_dtls").declareParameters(
new SqlParameter("p_repy_track", Types.ARRAY)
).returningResultSet("p_track_dtls",new RowMapper<String>() {
@Override
public String mapRow(ResultSet rs, int arg1)
throws SQLException {
// TODO Auto-generated method stub
return rs.getString(1);
}
} );
原因是什么?我发现我遇到了一个非常类似的问题,我试图调用一个重载的Postgres函数。Spring 3.2.3中的解决方案是调用withoutProcedureRecolumnMetadataAccess()
但一定要明确声明您的参数。另一种方法是为重载函数指定不同的名称。第3行中是否真的称为“p_repy_track”?可能是您的JDBC用户对该包/函数/表或其他任何东西没有权限。。。
org.springframework.dao.InvalidDataAccessApiUsageException: Unable to determine the correct call signature - multiple procedures/functions/signatures for CALC_RTR_DTLS found [SCORE_RTR.SCORE.CALC_RTR_DTLS, SCORE_RTR.SCORE.CALC_RTR_DTLS]