主页 > 知识库 > Oracle中返回结果集的存储过程分享

Oracle中返回结果集的存储过程分享

热门标签:沈阳400电话是如何办理 外呼系统口号 外呼系统郑州 地图标注付款了怎么找不到了 北京外呼系统公司排名 北京营销外呼系统厂家 百度地图标注员是干什么 贵阳智能电销机器人官网 温州人工外呼系统
Oracle不像SQLServer那样在存储过程中用Select就可以返回结果集,而是通过Out型的参数进行结果集返回的。实际上是利用REF CURSOR
复制代码 代码如下:

--procedure返回记录集:
----------------------声明一个Package--------------
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPEmyrctypeIS REF CURSOR;

PROCEDURE get_r(p_id NUMBER,p_rc OUT myrctype); --Package中声明名为get 的Procedure(只有接口没内容)
END pkg_test;

-----------------声明Package Body,即上面Package中的内容,包括Procedure get---------------------
CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get_r(p_id NUMBER,p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
IF p_id = 0 THEN
OPEN p_rc FOR
SELECT ID, NAME, sex, address, postcode, birthday
FROM student;
ELSE
sqlstr :=
'select id,name,sex,address,postcode,birthday
from student where id=:w_id'; --w_id是个参数,
--以下 p_rc是个REF CURSOR游标类型,而且是OUT型参数,即可返回一个记录集了。USING p_id就是替换上面SQL中:w_id值拉:)
OPEN p_rc FOR sqlstr USING p_id; 
END IF;
END get;
END pkg_test;

--function返回记录集的例子,原理和上面相同,而是用function的return值来返回记录集。

函数返回记录集:
建立带ref cursor定义的包和包体及函数:
复制代码 代码如下:

CREATE OR REPLACE
package pkg_test as

type myrctype is ref cursor;
function get_r(intID number) return myrctype;
end pkg_test;
/
CREATE OR REPLACE
package body pkg_test as
--函数体
function get_r(intID number) return myrctype is
rc myrctype; --定义ref cursor变量
sqlstr varchar2(500);
begin
if intID=0 then

--静态测试,直接用select语句直接返回结果
open rc for select id,name,sex,address,postcode,birthday from student;
else
--动态sql赋值,用:w_id来申明该变量从外部获得
sqlstr := 'select id,name,sex,address,postcode,birthday from student where id=:w_id';
--动态测试,用sqlstr字符串返回结果,用using关键词传递参数
open rc for sqlstr using intid;
end if;
return rc;
end get;
end pkg_test;
您可能感兴趣的文章:
  • Oracle存储过程基本语法介绍
  • Oracle存储过程返回游标实例详解
  • oracle存储过程中return和exit区别概述及测试
  • Oracle中 关于数据库存储过程和存储函数的使用
  • Oracle存储过程的编写经验与优化措施(分享)
  • java调用Oracle存储过程的方法实例
  • oracle存储过程创建表分区实例
  • oracle如何恢复被覆盖的存储过程
  • oracle数据库中查看系统存储过程的方法
  • oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)
  • oracle存储过程常用的技巧(详)

标签:衢州 包头 衡水 定西 温州 潮州 通辽 淮北

巨人网络通讯声明:本文标题《Oracle中返回结果集的存储过程分享》,本文关键词  Oracle,中,返回,结果,集,的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Oracle中返回结果集的存储过程分享》相关的同类信息!
  • 本页收集关于Oracle中返回结果集的存储过程分享的相关信息资讯供网民参考!
  • 推荐文章