Oracle开发之REF_CURSOR

Oracle开发之REF_CURSOR

ID:40563516

大小:41.93 KB

页数:14页

时间:2019-08-04

Oracle开发之REF_CURSOR_第1页
Oracle开发之REF_CURSOR_第2页
Oracle开发之REF_CURSOR_第3页
Oracle开发之REF_CURSOR_第4页
Oracle开发之REF_CURSOR_第5页
资源描述:

《Oracle开发之REF_CURSOR》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、前言关于REF_CURSOR我们已经不再陌生,在前边的博客我们已经接触过了REF_CURSOR:在博客《怎样让Oracle的存储过程返回结果集》中我们在一个返回结果集的HelloWorld级别的存储过程实例中用到了REF_CURSOR,在博客《烟草局绩效考核系统打分模块开发笔记》中我们在一个真实的项目中体会到REF_CURSOR给我们带来的神奇效果。今天,我们将通过学习Oracle官方的这篇《Oracle开发之REF_CURSOR》进一步解开REF_CURSOR的神秘面纱,通过本文的学习,我们对REF_CURSOR的理解

2、将会更加深入,而在以后的项目中对它的使用也必将更加规范。正文OracleREF_CURSOR简介使用REF_CURSOR我们可以从存储过程中得到一个结果集对象。REF_CURSOR分为两种基本类型:强类型REF_CURSOR和弱类型REF_CURSOR,强类型REF_CURSOR返回的数据类型和长度在编译期就应该指明,而弱类型REF_CURSOR不需要。强类型REF_CURSOR和Oracle9i之前的弱类型REF_CURSOR在包中应该这样定义:viewplainprint?1.createorreplacepacka

3、geREFCURSOR_PKGas2.TYPEWEAK8i_REF_CURSORISREFCURSOR;3.TYPESTRONG_REF_CURSORISREFCURSORRETURNEMP%ROWTYPE;4.endREFCURSOR_PKG;viewplaincopytoclipboardprint?1.createorreplacepackageREFCURSOR_PKGas2.TYPEWEAK8i_REF_CURSORISREFCURSOR;3.TYPESTRONG_REF_CURSORISREFCURSORRE

4、TURNEMP%ROWTYPE;4.endREFCURSOR_PKG;返回REF_CURSOR的PL/SQL存储过程的编写示例:viewplainprint?1./**untilOracle9*/2.createorreplaceproceduretest(p_deptnoINnumber3.,p_cursorOUT4.REFCURSOR_PKG.WEAK8i_REF_CURSOR)5.is6.begin7.openp_cursorFOR8.select*9.fromemp10.wheredeptno=p_deptno;

5、11.endtest;viewplaincopytoclipboardprint?1./**untilOracle9*/2.createorreplaceproceduretest(p_deptnoINnumber3.,p_cursorOUT4.REFCURSOR_PKG.WEAK8i_REF_CURSOR)5.is6.begin7.openp_cursorFOR8.select*9.fromemp10.wheredeptno=p_deptno;1.endtest;Oracle9i之后,我们可以使用SYS_REFCURS

6、OR作为REF_CURSOR的返回类型,例如:viewplainprint?1./**FromOracle9*/2.createorreplaceproceduretest(p_deptnoINnumber3.,p_cursorOUTSYS_REFCURSOR)4.is5.begin6.openp_cursorFOR7.select*8.fromemp9.wheredeptno=p_deptno;10.endtest;11.12.13./*Strongtype*/14.15.createorreplaceprocedur

7、etest(p_deptnoINnumber16.,p_cursorOUTREFCURSOR_PKG.STRONG17.REF_CURSOR)18.is19.begin20.openp_cursorFOR21.select*1.fromemp2.wheredeptno=p_deptno;3.endtest;viewplaincopytoclipboardprint?1./**FromOracle9*/2.createorreplaceproceduretest(p_deptnoINnumber3.,p_cursorOUT

8、SYS_REFCURSOR)4.is5.begin6.openp_cursorFOR7.select*8.fromemp9.wheredeptno=p_deptno;10.endtest;11.12.13./*Strongtype*/14.15.createorreplaceproceduretest(p_deptn

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。