首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle 存储过程返回结果集
【标  题】:Oracle 存储过程返回结果集
【关键字】:Oracle
【来  源】:http://blog.chinaunix.net/article.php?articleId=37865&blogId=8696

Oracle 存储过程返回结果集

Oracle 存储过程返回结果集

*过程返回记录集:
CREATE OR REPLACE PACKAGE pkg_test
AS
    TYPE myrctype IS REF CURSOR;
 
    PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
END pkg_test;
/
 
CREATE OR REPLACE PACKAGE BODY pkg_test
AS
    PROCEDURE get (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';
          OPEN p_rc FOR sqlstr USING p_id;
       END IF;
    END get;
END pkg_test;
/
 
函数返回记录集:
建立带ref cursor定义的包和包体及函数:
CREATE OR REPLACE
package pkg_test as
/* 定义ref cursor类型
    不加return类型,为弱类型,允许动态sql查询,
    否则为强类型,无法使用动态sql查询;
*/
   type myrctype is ref cursor; 
  
--函数申明
   function get(intID number) return myrctype;
end pkg_test;
/
  
CREATE OR REPLACE
package body pkg_test as
--函数体
    function get(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 管理的小tip.():【上一篇】
关于Logminer:【下一篇】
【相关文章】
  • Oracle 管理的小tip.()
  • 一次恢复oracle的尝试
  • logminer使用步骤一(在oracle加载logminer分析字典)
  • Oracle SQL的优化(2)
  • Oracle SQL的优化(3)
  • Oracle SQL的优化(4)
  • Oracle SQL的优化(5)---关于rownum的操作
  • Oracle 10g RMAN的备份测试
  • 修改oracle监听占用的8080端口
  • Oracle 体系结构介绍
  • 【随机文章】
  • WORD2000第七讲 复制与粘贴文字
  • 编程中的一些共同的问题
  • 分布式查询和分布式事务
  • 利用VB.NET来读取ODBC数据源名
  • ADO编程中ATL所遇到的定义问题
  • Maya 4.0 常用功能-Outliner窗口
  • 96年lbc96327号提案---对于量化参数值越界的情况的处理方法
  • ASFps类是一个可以在运行时模拟改变影片的帧率的包装类
  • Solaris 迅速查找手册
  • Google的电子邮箱Gmail从入门到精通
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.