spring Stored过程输入输出参数用法
您好,我正在调用一个oracle存储过程,该过程带有一个in out参数。 我从spring的StoredProcedure类扩展而来的类中调用该过程。根据发布的数量,我在类中将inout参数声明为out参数,并在映射函数中向该参数传递一个值。 问题是它只能作为out参数工作,而不能作为in参数。有人能告诉我我可能做错了什么吗spring Stored过程输入输出参数用法,spring,jdbctemplate,java-stored-procedures,Spring,Jdbctemplate,Java Stored Procedures,您好,我正在调用一个oracle存储过程,该过程带有一个in out参数。 我从spring的StoredProcedure类扩展而来的类中调用该过程。根据发布的数量,我在类中将inout参数声明为out参数,并在映射函数中向该参数传递一个值。 问题是它只能作为out参数工作,而不能作为in参数。有人能告诉我我可能做错了什么吗 public class MyService extends StoredProcedure { public MyService(JdbcTemplate jd
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;
公共类MyService扩展了StoredProcess{
公共MyService(JdbcTemplate JdbcTemplate,String sqlString){
setJdbcTemplate(jdbcTemplate);
setSql(sqlString);
setFunction(假);
declareParameter(新的SqlOutParameter(“inoutparam”,OracleTypes.INTEGER));
declareParameter(新的SqlParameter(“inparam”,Types.VARCHAR));
编译();
}
公共映射执行(int arg1,字符串arg2){
Map inParams=new HashMap();
输入参数put(“inoutparam”,arg1);
inParams.put(“inparam”,arg2);
Map=execute(inParams);
返回图;
}
}
程序prc_我的程序(
inoutparam输入输出编号,
inparam VARCHAR2)
是
开始
插入保存日志值(inoutparam、sysdate);
inoutparam:=100;
结束prc_my_proc;
通过使用declareParameter(新的SqlInOutParameter(“inoutparam”,OracleTypes.INTEGER))解决了这个问题;