存储过程中使用游标

  • 要求把productinfo表中数据根据不同的产品类型把数据输出到屏幕。
create or replace procedure product_cur_prc
as
       cur_ctgy productinfo.category%type;
       cur_ctgyname categoryinfo.categoryname%type;
       cur_prtifo productinfo%rowtype;

cursor cur_category
is
       select category from productinfo group by category;

       begin
          open cur_category;
          loop 
            fetch cur_category into cur_ctgy;
            exit when cur_category%notfound;

            select categoryinfo.categoryname into cur_ctgyname from categoryinfo where categoryinfo.categoryid=cur_ctgy;--根据类型编码得到产品类型名称

            if sql%found then
              dbms_output.put_line('-----------------------');
              dbms_output.put_line(cur_ctgyname || ':');
            end if;
            for my_prdinfo_rec in (select * from productinfo where category=cur_ctgy) loop
              dbms_output.put_line('产品名称:'||my_prdinfo_rec.productname||'产品价格:'||my_prdinfo_rec.productprice || '产品数量:'||my_prdinfo_rec.quantity);
            end loop;
         end loop;
         close cur_category;
      end;

      begin
       product_cur_prc();
      end;

输出结果为:
———————–
雨具:

产品名称:天堂伞产品价格:59产品数量:50

电视:
产品名称:夏普LCD-48G100A产品价格:7000产品数量:20
产品名称:海尔XQB50-918A产品价格:1100产品数量:29
产品名称:三星XQB50-918A产品价格:3600产品数量:12

产品名称:华为XQB50-918A产品价格:2500产品数量:111

洗衣机:

产品名称:台电QB50-918A产品价格:400产品数量:129

路由器:
产品名称:恩克斯-918A产品价格:2800产品数量:22

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值