SimpleJdbc,请求无效的转换

时间:2018-12-11 18:35:26

标签: java oracle stored-procedures jdbctemplate simplejdbccall

使用Oracle数据库 这是我的testMethod

public void testConnection(int a, int b) {
    this.jdbcTemplateObject = new JdbcTemplate(mysqlDataSource());
    SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplateObject).withCatalogName("packageName").withProcedureName("myProcedureName");

    SqlParameterSource in = new MapSqlParameterSource().addValue("arg1", a);
    SqlParameterSource in2 = new MapSqlParameterSource().addValue("arg2", b);
      Map<String, Object> out = jdbcCall.execute(in,in2);

下面是我的程序

PROCEDURE get_misc_shipment_type (a  IN  NUMBER,
                                  b  IN  NUMBER,
                                  c  OUT VARCHAR2,
                                  d  OUT VARCHAR2);  

我的数据源连接良好,并且我已验证数据库正在连接,但是会引发此错误,

callableStatementCallback; uncategorized SQLException for SQL [{call XX_RATELINX_SHIPPING_ENGINE.GET_MISC_SHIPMENT_TYPE(?, ?, ?, ?)}]; SQL state [99999]; error code [17132]; Invalid conversion requested; nested exception is java.sql.SQLException: Invalid conversion requested

我没有弄错我在做什么,感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我通过更改此方法解决了此问题:

SqlParameterSource in = new MapSqlParameterSource().addValue("arg1", a).addValue("arg2",b);