废话不说,直接上代码:
应用实例
//引用方式package.function或package.procedure
StoredProcedure sp = new org.springframework.jdbc.object.StoredProcedure(ds, "PACKAGE_NAME.PROCEDURE_NAME");
//调用函数时必须,调用存储过程不要
sp.setFunction(true);
//设置返回参数名(将来通过此名称获取输出的返回结果),返回参数需在IN参数前定义
//返回类型Types.ARRAY,自定义类型名称(自定义oracle的TYPE必须在package之上定义,可以在schema层次定义,package内不支持,参见下段“无效的名称模式”)
//sp.declareParameter(new SqlOutParameter("result", Types.INTEGER)); //输出INTEGER类型
sp.declareParameter(new SqlOutParameter("result", Types.ARRAY, "NUMBER_ARRAY")); //返回table类型
//设置输入参数
sp.addParameter("p_name", "广州");
//定义返回对象
Map<String, Object> result = null;
//执行。存在ORA04068异常的可能,若发生则再试执行一次。
try{
result = sp.execute();
}catch(UncategorizedSQLException e){
String state = e.getSQLException().getSQLState();
int code = e.getSQLExce