首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Oracle带游标的存储过程在plus中的调用范例

2013-03-26 
Oracle带游标的存储过程在plus中的调用实例之前在帖子http://blog.csdn.net/szstephenzhou/article/detail

Oracle带游标的存储过程在plus中的调用实例


之前在帖子http://blog.csdn.net/szstephenzhou/article/details/7737342 里回答了一些网友的关于怎么穿件一个返回记录集合的存储过程。想必很多网友已经很明白了,这里就不多讲了,先在这个帖子主要回答百度知道http://zhidao.baidu.com/question/453032020.html?fr=uc_ma_push&fl=red&oldq=1&push=一个网友的怎么调用含游标的存储过程在sqlplus,如果你要问我程序里怎么调用 那你就不要问了 因为那个太多知道了 很少有人问到。 废话不多说 上实例了

首先看下t1的表结构

 

SQL> desc T1 名称                                      是否为空? 类型 ----------------------------------------- -------- --------------------- D                                         NOT NULL DATE A                                                  NUMBER(38) B                                                  NUMBER(38) C                                                  NUMBER(38)


 

看下T1的表里的数据情况

SQL> select * from t1;D                       A          B          C-------------- ---------- ---------- ----------12-3月 -11            102         21         1514-3月 -11            100         58         7315-3月 -11            105                    87

 

和上一个帖子一样 首先创建一个包先

SQL> create or replace package pkg_package  2  as  3      type type_cursor is ref cursor;  4      type type_record is record  5      (  6          test01 DATE,  7          test02 NUMBER(38),  8          test03 NUMBER(38) ,  9          test04 NUMBER(38) 10      ); 11  end; 12  /程序包已创建。


创建一个带游标的的存储过程也就是一个返回记录集合的存储过程

SQL> create or replace procedure p_temp_procedure  2  (  3      cur_out_arg out pkg_package.type_cursor  4  )  5  is  6  begin  7      open cur_out_arg for select * from T1;  8  end;  9  /过程已创建。


该有的数据都有了,接着重点来了。  调用存储过程返回记录集合

 

SQL> declare  2      cur_out_arg pkg_package.type_cursor;  3      rec_arg pkg_package.type_record;  4  begin  5      dbms_output.put_line('------------------------');  6      p_temp_procedure(cur_out_arg);  7      loop  8          fetch cur_out_arg into rec_arg;  9         exit when cur_out_arg%notfound; 10         dbms_output.put_line(rec_arg.test01||' '||rec_arg.test02||' '||rec_arg.test03||''||rec_arg.test04); 11      end loop; 12  end; 13  /------------------------12-3月 -11 102 211514-3月 -11 100 587315-3月 -11 105 87PL/SQL 过程已成功完成。SQL>



 


我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

热点排行