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;
存储过程一般格式
最新推荐文章于 2024-03-28 14:35:10 发布