Oracle游标类型作为传入传出参数

--游标类型传入参数
DECLARE
/*CURSOR cur_ttt IS
SELECT 1 a FROM dual;*/

TYPE typ_cur IS REF CURSOR;
val_cur typ_cur;

PROCEDURE temp_sp1(x_cur OUT typ_cur) IS
BEGIN
OPEN x_cur FOR SELECT 1 a FROM dual UNION ALL SELECT 2 FROM dual;
END;

PROCEDURE temp_sp2(p_cur IN typ_cur) IS
i NUMBER;
BEGIN
LOOP
FETCH p_cur INTO i;
EXIT WHEN p_cur%NOTFOUND;
dbms_output.put_line(i);
END LOOP;
CLOSE p_cur;
END;
BEGIN
temp_sp1(val_cur);
temp_sp2(val_cur);

OPEN val_cur FOR SELECT 3 a FROM dual UNION ALL SELECT 4 FROM dual;
temp_sp2(val_cur);
END;


SELECT t.id,
b.rn,
decode(b.rn,
1,
t.scat_int,
2,
t.incl_int,
3,
t.other_int,
4,
t.rc_int) AS INT,
t.seq_no
FROM test_3_6 t, (SELECT rownum rn FROM dual CONNECT BY rownum <= 4) b
WHERE t.id = 1
AND decode(b.rn,
1,
t.scat_int,
2,
t.incl_int,
3,
t.other_int,
4,
t.rc_int) IS NOT NULL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值