备份下2013年7月28号写的存储过程

来源:互联网 发布:万达产业bcg矩阵分析 编辑:程序博客网 时间:2024/05/05 15:45
     
CREATE OR REPLACE PACKAGE scjk_rainMessageisprocedure RainMessage(   --水情信息   stcds  in   str_list,   --站点名称   names  out str_list,   --站点类型   sttps  out str_list,   --站点位置   locs  out str_list,   --实时雨情   currentTimeRms  out num_list,   --时段雨情   --极值雨量   --站点经度   lgtds   out num_list,   --站点纬度   lttd  out num_list,   --数据入库时间   updateTime   out str_list);end  scjk_rainMessage;CREATE OR REPLACE PACKAGE  BODY scjk_rainMessageisprocedure RainMessage(   --水情信息   stcds  in   str_list,   --站点名称   names  out str_list,   --站点类型   sttps  out str_list,   --站点位置   locs  out str_list,   --实时雨情   currentTimeRms  out num_list,   --时段雨情   --极值雨量   --站点经度   lgtds   out num_list,   --站点纬度   lttd  out num_list,   --数据入库时间   updateTime   out str_list)isbegin   for  i in 1..stcds.count loop     names.extend();     locs.extend();     sttps.extend();     lgtds.extend();     lttd.extend();     currentTimeRms.extend();     updateTime.extend();    begin       select t2.stnm,t2.stlc,t2.sttp,          t2.lgtd,t2.lttd into names(i),locs(i),sttps(i),          lgtds(i),lttd(i) from st_stbprp_b t2          where ltrim(rtrim(t2.stcd))=stcds(i);        EXCEPTION WHEN NO_DATA_FOUND THEN            names(i):='';            locs(i):='';            sttps(i):='';            lgtds(i):=-10000;            lttd(i):=-10000;     end;     --查询实时雨量     begin          select  drp,to_char(tm,'YYYY-MM-DD HH24:MI:SS')          into currentTimeRms(i),updateTime(i) from (select t1.drp,t1.tm  from            ST_PPTN_R t1   where ltrim(rtrim(t1.stcd))= stcds(i)             order by t1.tm desc ) where ROWNUM =1;       EXCEPTION WHEN NO_DATA_FOUND THEN          currentTimeRms(i):=-10000;          updateTime(i):='';     end;   end loop;end;end  scjk_rainMessage;
CREATE OR REPLACE PACKAGE scjk_LargeandRediumReservoirisprocedure LargeandRediumReservoir(    --大、中兴水库日综合报表    --水库编号    stcds   in  str_list,    --水库名    names   out str_list,    --位置    locs   out str_list,    --所属流域    bsnms  out str_list,    --实时水位    currentTimeWms   out num_list,    --去年同期水位    --实时库容    kurongs   out num_list,    --集雨面积    --总库容    zongkurongs  out num_list,    --兴利库容    xinglikurongs  out num_list,    --汛限水位库容    fsltdws   out num_list,    --死水位    ddzs  out num_list,    --死库容    ddcps  out num_list,    --站点经度    lgtds  out num_list,    --站点纬度    lttds  out num_list,    --入库时间    updatetimes out str_list);end  scjk_LargeandRediumReservoir;CREATE OR REPLACE PACKAGE  BODY  scjk_LargeandRediumReservoirisprocedure LargeandRediumReservoir(    --大、中兴水库日综合报表    --水库编号    stcds   in  str_list,    --水库名    names   out str_list,    --位置    locs   out str_list,    --所属流域    bsnms  out str_list,    --实时水位    currentTimeWms   out num_list,    --去年同期水位    --实时库容    kurongs   out num_list,    --集雨面积    --总库容    zongkurongs  out num_list,    --兴利库容    xinglikurongs  out num_list,    --汛限水位库容    fsltdws   out num_list,    --死水位    ddzs  out num_list,    --死库容    ddcps  out num_list,    --站点经度    lgtds  out num_list,    --站点纬度    lttds  out num_list,    --入库时间    updatetimes out str_list)isbegin    for i  in 1..stcds.count loop       zongkurongs.extend();       xinglikurongs.extend();       ddzs.extend();       ddcps.extend();       begin        --查询总库容,兴利库容,死水位,死库容          select t.ttcp,t.actcp,t.ddz,t.ddcp            into zongkurongs(i),xinglikurongs(i),ddzs(i),ddcps(i)           from  ST_RSVRFCCH_B t  where  rtrim(ltrim(t.stcd))=stcds(i);       EXCEPTION WHEN NO_DATA_FOUND THEN           zongkurongs(i):=-10000;           xinglikurongs(i):=-10000;           ddzs(i):=-10000;           ddcps(i):=-10000;        end;         names.extend();         locs.extend();         bsnms.extend();         lgtds.extend();         lttds.extend();        --查询水库名,位置,所属流域,站点经度,站点纬度        begin          select t.stnm,t.stlc,t.bsnm,t.lgtd,t.lttd          into names(i),locs(i),bsnms(i),lgtds(i),lttds(i)           from st_stbprp_b t where  rtrim(ltrim(t.stcd))=stcds(i);               EXCEPTION WHEN NO_DATA_FOUND THEN            names(i):='';            locs(i):='';            bsnms(i):='';            lgtds(i):=-10000;            lttds(i):=-10000;        end;       fsltdws.extend();       begin           --查询汛限水位库容            select  t.fsltdw into fsltdws(i) from ST_RSVRFSR_B t               where rtrim(ltrim(t.stcd))=stcds(i);          EXCEPTION WHEN NO_DATA_FOUND THEN            fsltdws(i):=-10000;       end;       currentTimeWms.extend();       updateTimes.extend();       begin       --查询实时水位,入库时间            select rz,to_char(tm,'YYYY-MM-DD HH24:MI:SS')            into  currentTimeWms(i) ,updateTimes(i)             from (select t1.rz,t1.tm  from  ST_RSVR_R t1             where ltrim(rtrim(t1.stcd))= stcds(i)           order by t1.tm desc ) where ROWNUM =1;         EXCEPTION WHEN NO_DATA_FOUND THEN            currentTimeWms(i):=-10000;            updateTimes(i):='';       end;       kurongs.extend();       --查询实时库容       begin          select w into  kurongs(i)           from (select t1.w  from  ST_RSVR_R t1             where ltrim(rtrim(t1.stcd))= stcds(i)           order by t1.tm desc ) where ROWNUM =1;        EXCEPTION WHEN NO_DATA_FOUND THEN            kurongs(i):=-10000;       end;    end loop;end;end  scjk_LargeandRediumReservoir;