sys_refcursor是oracle9i以后系统定义的一个refcursor,主要作用是用于存储过程返回结果集。
存储过程结构如下:
CREATE OR REPLACE PROCEDURE SP_CalcChargePrice
/*
计算报备、评估收费基准价
@Charge=收费项目
@Amount=收费依据金额
@Kind=类别 1=报备 2=评估
@Year=暂定
*/
(
v_Charge IN VARCHAR2 DEFAULT NULL ,
v_AmountTemp IN NUMBER DEFAULT NULL ,
v_Kind IN NUMBER DEFAULT 1 ,
v_Year IN NUMBER DEFAULT 0 ,
v_Hours IN NUMBER DEFAULT 0,
v_Result OUT SYS_REFCURSOR
)
AS
BEGIN
--…………存储过程代码太长省略(400+行)…………
END;
存储过程带了6个参数,其中一个是OUT SYS_REFCURSOR类型用以返回结果集,
JAVA中调用该存储过程执行并返回结果集为ResultSet方法:
try {
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
Connection conn