嗨,我正在调用一个带有 in out 参数的 oracle 存储过程。我正在从我的类中调用从 spring 的 StoredProcedure 类扩展的过程。根据帖子的数量,我已在我的类中将 inout 参数声明为 out 参数,并将值传递给我的映射函数中的参数。问题是它只能作为输出参数而不是作为参数。有人可以告诉我我可能做错了什么吗?
public class MyService extends StoredProcedure {
public MyService(JdbcTemplate jdbcTemplate,String sqlString) {
setJdbcTemplate(jdbcTemplate);
setSql(sqlString);
setFunction(false);
declareParameter( new SqlOutParameter("inoutparam",OracleTypes.INTEGER));
declareParameter( new SqlParameter("inparam",Types.VARCHAR));
compile();
}
public Map execute(int arg1,String arg2) {
Map<String, Object> inParams = new HashMap<String, Object>();
inParams.put("inoutparam", arg1);
inParams.put("inparam", arg2);
Map<String,Object> map = execute(inParams);
return map;
}
}
PROCEDURE prc_my_proc (
inoutparam IN OUT NUMBER,
inparam VARCHAR2)
IS
BEGIN
INSERT INTO save_log values ( inoutparam,sysdate);
inoutparam := 100;
END prc_my_proc;