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

之前在帖子http://www.voidcn.com/article/p-ryleqnfo-ua.html 里回答了一些网友的关于怎么穿件一个返回记录集合的存储过程。想必很多网友已经很明白了,这里就不多讲了,先在这个帖子主要回答百度知道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 15

14-3月 -11 100 58 73

15-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_a

rg.test03||''||rec_arg.test04);

11 end loop;

12 end;

13 /

------------------------

12-3月 -11 102 2115

14-3月 -11 100 5873

15-3月 -11 105 87

PL/SQL 过程已成功完成。

SQL>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值