0

我正在尝试使用 spring jdbctemplate 运行 oracle 程序。我正在使用以下代码运行该程序

private boolean executeProcedure(jdbcTemplate JdbcTemplateTest)
{
try
{
int x = jdbcTemplateTest.update("call oracleProc()");
return true;
}
catch(Exception e)
{
 logger.error("Error While runing procedure::"+procedureName+"-"+e);
 return false;
}
}

该函数运行良好,没有抛出任何错误。但我遇到以下问题

  1. 代码实际上没有执行该过程

  2. 代码锁定表,这些表都由过程 oracleProc() 使用

请帮我解决问题。请澄清我的代码有什么问题。

4

1 回答 1

0

在 Spring 中有多种调用存储过程的方法。

尝试使用 CallableStatementCreator,您将在其中使用 Java 的 CallableStatement 标准接口。
或者

 SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
        .withSchemaName(schema)
        .withCatalogName(package)
        .withProcedureName(procedure)();
    ...
    jdbcCall.addDeclaredParameter(new SqlParameter(paramName, OracleTypes.NUMBER));
    ...
    jdbcCall.execute(callParams);

对于简单的过程,您可以使用 jdbcTemplate 的更新方法:

jdbcTemplate.update("call proc (?, ?)", par1, par2);
于 2013-08-20T11:58:29.320 回答