`
mrzhanghuzi
  • 浏览: 25096 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

存储过程一般格式

SQL 
阅读更多

create or replace procedure sPro_CalculatePlanResult
(ps_YMD             in varchar2,  --日期
 pi_ModeID          in integer,   --方案编号
 pi_Result          out integer,  --结果标识
 ps_Message         out varchar2  --计算结果信息
 )
 /*===============================================
标题 sPro_CalculatePlantResult
功能 根据保存的计划方案结果,计算相关统计量
参数
作者 xx 2008-09-17  
===============================================*/

--With Encryption
As  
  vs_Sql            varchar2(2000);
  vi_point          integer;
  --vi_PlantID        integer;
  --vi_CapacityTypeID integer;
  --vs_YMD            varchar2(8);
Begin
  pi_Result:=-1;
  ps_Message:='计算发电计划结果出错...';
 
  /*=================1全网计划出力信息表=================*/
  --计算系统各点平均煤耗率,平均电价,机组平均负荷率
 
  --1根据燃煤机组电量计算平均煤耗率
  for vi_Point in 0..95
  loop
   
      select 'update TB_FORE_SYSTEM_INFO '
            ||'set  AvgMeiHao=SumMeiHao*1000/(select sum('||FieldName||') Firedayenergy from TB_FORE_UNIT_POWER a,tb_Bas_unit b'
            ||'    where a.unitid=b.id and b.typeid=1 '
            ||'    and a.ymd='||ps_YMD||' and modeid='||pi_ModeID||' and type=9)'
   
            ||' where ymd='||ps_YMD||' and modeid='||pi_ModeID||' and Power>0 and type=9 and point='||vi_Point

           into vs_Sql from tb_Bas_point where periodid=vi_Point;
     
      execute immediate(vs_sql);
     
  end loop;
 

  update TB_FORE_SYSTEM_INFO a
    set  AvgPrice=Cost*10000/Power
  where ymd=ps_YMD and modeid=pi_ModeID and Power>0 and type=9;
 
  update TB_FORE_SYSTEM_INFO a
    set AvgRate=Power/RunCapacity
  where ymd=ps_YMD and modeid=pi_ModeID and RunCapacity>0 and type=9;
 

 
/*=================退出=================*/
  pi_Result:=1;
  ps_Message:='计算发电计划结果成功';
  return;
 
exception when others then
begin
  pi_Result:=-1;
  ps_Message:='计算发电计划结果出错:'||sqlerrm;
  return;
end;

end sPro_CalculatePlanResult;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics