こんにちは、in out パラメータを受け取る Oracle ストアド プロシージャを呼び出しています。Spring の StoredProcedure クラスから拡張されたクラスからプロシージャを呼び出しています。ポストの数に基づいて、inout パラメータをクラスの out パラメータとして宣言し、マッピング関数のパラメータに値を渡しました。問題は、out パラメータとしてのみ機能し、in パラメータとしては機能しないことです。何が間違っているのか教えてもらえますか?
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;