网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.oracle执行计划刨析.
.带你轻松接触Oracle DBLink的简单.
.Oracle在Linux下的安装.
.如何改善Oracle的索引?.
.编程实现备份和还原数据库.
.创建一个ORACLEstandby database.
.autoconf手册(八).
.教你做Linux中的Windows管理员(图.
.关于排序、sort_area_size、临时.
.ORACLE问答精选.
.Oracle培训热点问题.
._disable_logging对于性能的影响.
.ORACLE之常用FAQ V1.0.
.linux的基本操作(上).
.RedHat 日志文件.
.构建用于位置信息开放标准的Port.
.如何从一个大tgz包中解压出某个文.
.在FORM中使用JAVA类库的方法.
.SAP称甲骨文收购是在搅浑水 巨头.
.ORACLE的PL/SQL二.

Oracle 存储过程返回结果集

发表日期:2008-2-9


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性能究极优化 下 人气:775
下一篇:哪些初始化参数最影响Oracle系统性能 人气:467
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐