1

嗨,我正在调用一个带有 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;
4

0 回答 0