oracle建立包 含預存程序和函數

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.