Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了关于oracle中procedure和function返回cursor类型的变量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

/*
请使用scott/tiger用户下的emp表进行测试
*/
/*
注意:
在使用游标作为返回值时,要注意再动态绑定时打开游标然后返回
在使用时直接使用游标,不需要再次打开,故而只能使用传统的open/close方式来使用游标,
for循环使用游标时,会牵扯到打开游标会出现重复打开的错误,所以不能使用。
*/

–在过程中返回类型为游标变量类型
CREATE OR replaCE PROCEDURE findset_emp(v_deptno IN numbER,
c_cursor OUT SYS_REFcursOR) AS
BEGIN
OPEN c_cursor FOR –打开游标,在创建过程中绑定
SELECT *
FROM emp
WHERE deptno = v_deptno;
END;
–测试过程返回游标类型是否正确
DECLARE v_cur SYS_REFcursOR; emp_rec emp%rOWTYPE;
BEGIN
findset_emp(10,v_cur); LOOP FETCH v_cur INTO emp_rec; EXIT WHEN v_cur%NOTFOUND; DBMS_output.put_line(‘—————’);
END LOOP; CLOSE v_cur;
END;
–创建函数,返回值为游标类型
CREATE OR replaCE FUNCTION return_cur_test(v_deptno VARCHAR2) RETURN SYS_REFcursOR IS
type_cur SYS_REFcursOR;
BEGIN
OPEN type_cur FOR SELECT * FROM emp WHERE deptno = v_deptno; RETURN type_cur;
END;

–测试是否正确
DECLARE v_cur SYS_REFcursOR; emp_rec emp%rOWTYPE;
BEGIN
v_cur := return_cur_test(&deptno);

LOOP EXIT WHEN v_cur%NOTFOUND; FETCH v_cur INTO emp_rec; DBMS_output.put_line(‘—————’); END LOOP; CLOSE v_cur; END;

大佬总结

以上是大佬教程为你收集整理的关于oracle中procedure和function返回cursor类型的变量全部内容,希望文章能够帮你解决关于oracle中procedure和function返回cursor类型的变量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: