Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SimpleJdbc,请求的转换无效_Java_Oracle_Stored Procedures_Jdbctemplate_Simplejdbccall - Fatal编程技术网

Java SimpleJdbc,请求的转换无效

Java SimpleJdbc,请求的转换无效,java,oracle,stored-procedures,jdbctemplate,simplejdbccall,Java,Oracle,Stored Procedures,Jdbctemplate,Simplejdbccall,使用Oracle数据库 这是我的测试方法 public void testConnection(int a, int b) { this.jdbcTemplateObject = new JdbcTemplate(mysqlDataSource()); SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplateObject).withCatalogName("packageName").withProcedureName("

使用Oracle数据库 这是我的测试方法

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);
我的数据源连接良好,我验证了数据库正在连接,但它抛出了这个错误

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

我不知道我做错了什么,非常感谢您的帮助。

我通过更改以下内容解决了问题:

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

您必须再传递两个参数,它们可以处理过程的输出。我通过在=new-MapSqlParameterSource().addValue(“arg1”,a).addValue(“arg2”,b)中更改这个SqlParameterSource来解决这个问题@vivek您知道在存储过程中传递的输入参数是否应该完全匹配吗?
SqlParameterSource in = new MapSqlParameterSource().addValue("arg1", a).addValue("arg2",b);