JAVA执行带SYS_REFCURSOR游标的oracle存储过程返回结果集 会话级临时表

本文介绍了如何在Java中调用一个带有SYS_REFCURSOR参数的Oracle存储过程,该过程返回结果集。通过使用会话级临时表存储结果,实现了会话级别的数据隔离,确保了数据的安全性。在存储过程中,一个OUT参数用于返回SYS_REFCURSOR类型的查询结果,而在Java中,这个结果被转换为ResultSet。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值