模式:
create or replace procedure 過程名(參數名 參數類型,...)
is
變量名 變量類型;
begin
過程內容;
end 過程名;
/
show err;
?
舉例:
create or replace procedure proc_blddesignusagearea(p_buildid number) is
?/*
?函數功能:統計樓棟下房屋的用途、面積、套數等信息
??*/
?l_buildarea??? bldroom.buildarea%type;
?l_usearea????? bldroom.usearea%type;
?l_publicarea?? bldroom.publicarea%type;
?l_sets???????? building.sets%type;
?l_cnt1???????? number:=0;
begin?
?--[blddesignusagearea A,bldroom B,將屬于A而不屬于B的用途刪掉]--
?for brrs in (select nvl(designusage,'') designusage from blddesignusagearea where buildid=p_buildid minus select distinct nvl(designusage,'') designusage from bldroom where buildid=p_buildid and resopertype in (1,4))
?loop
??delete from bldDesignusagearea where buildid=p_buildid and nvl(designusage,'')=brrs.designusage;
?end loop;
?--[將同屬于A、B的用途更新,將不屬于A但屬于B的用途新增]--
?for brrs in (select distinct nvl(designusage,'') designusage from bldroom where buildid=p_buildid and resopertype in (1,4))
?loop
??select sum(buildarea),sum(usearea),sum(publicarea),count(bldroomid) into l_buildarea,l_usearea,l_publicarea,l_sets from bldroom where buildid=p_buildid and resopertype in (1,4) and nvl(designusage,'')=brrs.designusage;
??select count(*) into l_cnt1 from blddesignusagearea where buildid=p_buildid and nvl(designusage,'')=brrs.designusage;
??if l_cnt1=1 then --[樓棟下該用途存在只更新面積]--
???if l_sets>0 then
????update bldDesignusagearea set buildarea=l_buildarea,usearea=l_usearea,publicarea=l_publicarea,sets=l_sets where buildid=p_buildid and nvl(designusage,'')=brrs.designusage;
???else
????delete from bldDesignusagearea where buildid=p_buildid and nvl(designusage,'')=brrs.designusage;
???end if;
??elsif l_cnt1=0 then --[樓棟下該用途不存在新增記錄]--
???if l_sets>0 then
????insert into bldDesignusagearea (buildid,designusage,buildarea,usearea,publicarea,sets) select p_buildid,brrs.designusage,l_buildarea,l_usearea,l_publicarea,l_sets from dual;
--???else ???
???end if;
??end if;
?end loop;
end proc_blddesignusagearea;
/
show err;
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
