Hi,
You could use the SqlOutParameter for the OUT parameters to your stored procedures too.
Took your stored procedure and compiled it in Oracle (sorry!),
Code:
CREATE PROCEDURE SP_EXAMPLE ( SP_IN_PARAM VARCHAR, SP_OUT_PARAM OUT VARCHAR, SP_IN_OUT_PARAM IN OUT VARCHAR)
AS
BEGIN
SP_OUT_PARAM := 'SetByProc';
SP_IN_OUT_PARAM := SP_IN_OUT_PARAM || ' ' || SP_IN_PARAM;
END;
Also added an IN OUT parameter.
This piece of code calls the the procedure, passing in the IN parameters, executing the stored procedure and getting back the OUT parameters as results:
Code:
class SpExample extends StoredProcedure {
public SpExample(JdbcTemplate template, String sql) {
setJdbcTemplate(template);
setSql(sql);
declareParameter(new SqlParameter("inParam", Types.VARCHAR));
declareParameter(new SqlOutParameter("outParam", Types.VARCHAR));
declareParameter(new SqlOutParameter("inOutParam", Types.VARCHAR));
compile();
}
}
Map params = new HashMap();
params.put("inParam", "IN ");
params.put("inOutParam", "INOUT");
StoredProcedure spExample = new SpExample(template, "sp_example");
Map outParams = spExample.execute(params);
System.out.println("Out param is: "+outParams.get("outParam"));
System.out.println("In out param is: "+outParams.get("inOutParam"));
Result:
Code:
Out param is: SetByProc
In out param is: INOUT IN
Regards,
Amit