SimpleJdbcCall Oracle存储过程错误的参数数量或类型

时间:2019-09-05 03:29:53

标签: java oracle spring-jdbc jdbctemplate

我正在尝试使用一个输出游标类型参数并且没有输入参数来调用Oracle存储过程。虽然可以使用vanilla jdbc成功运行存储过程,但我得到了

  

PLS-00306:调用时参数的数量或类型错误   'MYPROCEDURE'

使用Spring的SimpleJdbcCall API时出现

错误。无法弄清楚哪里出了问题,有人可以帮助我了解以下代码中的问题吗?过程/参数名称/类型的拼写正确。

DataSource ds = new HikariDataSource(); //has jdbcurl,username,password,driverClassName set
JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
                                 .withSchemaName("myschema")
                                  .withCatalogName("mypackage")
                                   .withProcedureName("myprocedure")
                                    .withoutProcedureColumnMetaDataAccess()
                                     .withReturnValue()
                                      .declareParameters(new SqlOutParameter("out_param_name", OracleTypes.Cursor, new MyRowMapper());
Map<String,Object> result = jdbcCall.execute();

0 个答案:

没有答案