oracle创建包 含存储过程和函数

create table my_toys

(

    id varchar2(5),

     name varchar2(20),

     price number

);

--插入测试数据

insert into my_toys values('G001','电热毯',145);

insert into my_toys values('G002','自行车',327);

insert into my_toys values('G003','牙膏',14.5);

insert into my_toys values('G004','棉被',105);

insert into my_toys values('G005','热水瓶',65);

insert into my_toys values('G006','拖鞋',22.5);

 

--包规范(必须先声明包在创建包体)

create or replace package toyspack

as

    procedure UpdateToyPrice;

     function AvgToyPrice return number;

end toyspack;

 

--包主体

create or replace package body toyspack

as

    procedure UpdateToyPrice

     as

        avgPrice number := AvgToyPrice;

     begin

        while (avgPrice <= 400) loop

            --循环更新

            update my_toys set price=

                 case

                     when price*1.1<500 then price*1.1

                     else price

                  end;

             avgPrice := AvgToyPrice;

             commit;

         end loop;

     end UpdateToyPrice;

    

     function AvgToyPrice return number

     as

        v_avg number;

     begin

        select avg(price) into v_avg from my_toys;

         return v_avg;

     end AvgToyPrice;

end toyspack;

 

--调用

execute toyspack.UpdateToyPrice;

select toyspack.AvgToyPrice from dual;

转载地址:http://wenwen.soso.com/z/q363392651.htm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值