我對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行
任何建議,將不勝感激。