2024年4月11日发(作者:)
前言
关于 REF_CURSOR 我们已经不再陌生,在前边的博客我们已经接触过了
REF_CURSOR:在博客《怎样让 Oracle 的存储过程返回结果集》中我们在一个返回结果
集的 Hello World 级别的存储过程实例中用到了 REF_CURSOR,在博客《烟草局绩效考
核系统打分模块开发笔记》中我们在一个真实的项目中体会到 REF_CURSOR 给我们带来
的神奇效果。今天,我们将通过学习 Oracle 官方的这篇《Oracle 开发之 REF_CURSOR》
进一步解开 REF_CURSOR 的神秘面纱,通过本文的学习,我们对 REF_CURSOR 的理解
将会更加深入,而在以后的项目中对它的使用也必将更加规范。
正文
Oracle REF_CURSOR 简介
使用 REF_CURSOR 我们可以从存储过程中得到一个结果集对象。
REF_CURSOR 分为两种基本类型:强类型 REF_CURSOR 和弱类型 REF_CURSOR,
强类型 REF_CURSOR 返回的数据类型和长度在编译期就应该指明,而弱类型
REF_CURSOR 不需要。
强类型 REF_CURSOR 和 Oracle 9i 之前的弱类型 REF_CURSOR 在包中应该这样
定义:
view plainprint?
1. create or replace package REFCURSOR_PKG as
2. TYPE WEAK8i_REF_CURSOR IS REF CURSOR;
3. TYPE STRONG_REF_CURSOR IS REF CURSOR RETURN EMP%ROWTYPE;
4. end REFCURSOR_PKG;
view plaincopy to clipboardprint?
1. create or replace package REFCURSOR_PKG as
2. TYPE WEAK8i_REF_CURSOR IS REF CURSOR;
3. TYPE STRONG_REF_CURSOR IS REF CURSOR RETURN EMP%ROWTYPE;
4. end REFCURSOR_PKG;
create or replace package REFCURSOR_PKG as
TYPE WEAK8i_REF_CURSOR IS REF CURSOR;
TYPE STRONG_REF_CURSOR IS REF CURSOR RETU
end REFCURSOR_PKG;
返回 REF_CURSOR 的 PL/SQL 存储过程的编写示例:


发布评论