我对Spring JDBC非常陌生。我有没有共享的数据(无前/后置方法需要,因为它们在其自己的数据文件他们自己的数据)3个JUnit测试Spring调用存储过程时失败的JUnit测试
每个这些试验的调用一个包内的存储过程。如果我运行测试单独他们都通过,但运行的所有三种,一种失败:(如果我改变测试的顺序在类失败的一个变化)
到存储过程调用使用Spring JDBC:
SimpleJdbcCall callProcedure = new SimpleJdbcCall(jdbcTemplate)
.withCatalogName("ADMIN.CALCULATE")
.withProcedureName("GET_TOTALS")
.useInParameterNames("account_no", "request_list")
.withoutProcedureColumnMetaDataAccess()
.declareParameters(
new SqlParameter("account_no", Types.INTEGER),
new SqlParameter("request_list", OracleTypes.ARRAY, "ADMIN.CALC_REQUEST_TAB"),
new SqlOutParameter("response_list", OracleTypes.ARRAY, "ADMIN.CALC_RESPONSE_TAB"));
callProcedure.compile();
Map<String, Object> inputParams = new HashMap<String, Object>();
// set StructDescriptor and ArrayDescriptor
genericTypeDTO.setStructDescriptorName("ADMIN.T_CALC_REQUEST_TYPE");
genericTypeDTO.setArrayDescriptorName("ADMIN.CALC_REQUEST_TAB");
inputParams.put("account_no", accountNo);
inputParams.put("clawback_list", genericTypeDTO);
Map<String, Object> outData = (Map<String, Object>) callProcedure.execute(inputParams);
下面是打callProcedure.execute(inputParams)的测试之一时所引发的异常:org.springframework.jdbc.BadSqlGrammarException:致
CallableStatementCallback ;错误的SQL语法[{call ADMIN.CALCULATE.GET_TOTALS(?,?,?)}];嵌套的异常是 java.sql.SQLException中:ORA-06533:下标计数超越ORA-06512:在 “ADMIN.CALCULATE”,线2160 ORA-06512:在第1行
任何建议,将不胜感激。