【指标统计】根据遥控补全遥信
生活随笔
收集整理的這篇文章主要介紹了
【指标统计】根据遥控补全遥信
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
設(shè)計(jì)思路:每一個(gè)成功的遙控(返信成功)應(yīng)當(dāng)對(duì)應(yīng)一個(gè)COS和SOE。如果返信成功時(shí)間前后5秒內(nèi),未找到同一測(cè)點(diǎn)相同狀態(tài)的變位信息,則認(rèn)為對(duì)應(yīng)遙信已被誤刪。隨即進(jìn)行恢復(fù)(插入到scada_event和scada_event_yx表中)。
金倉(cāng)
CREATE or REPLACE PROCEDURE MAKEUP() AS DECLAREtrigger_cur refcursor;occur_time_var date;milli_second_var int;time_0_var date;time_1_var date;cnt_var integer;soe_time_var date;soe_msec_var int;obj_id_var bigint;dev_id_var bigint;rtu_id_var bigint;rtu_type_var integer;comm_type_var integer;manu_fac_var integer;feeder_id_var bigint;station_id_var bigint;status_var bigint;content_var varchar(1024);pos_var varchar(1024);sql_var varchar(1024); BEGINdelete from scada_event_yx where yk_of_yx = -123;open trigger_cur for select occur_time,milli_second,obj_id,dev_id,rtu_id,rtu_type,comm_type,manu_fac,feeder_id,station_id,status,content from scada_event_yk where occur_time > '2019-08-31' and status = 17 order by occur_time;LOOPfetch trigger_cur into occur_time_var,milli_second_var,obj_id_var,dev_id_var,rtu_id_var,rtu_type_var,comm_type_var,manu_fac_var,feeder_id_var,station_id_var,status_var,content_var;EXIT WHEN trigger_cur%NOTFOUND;time_0_var = occur_time_var - 5 second;time_1_var = occur_time_var + 5 second;pos_var = substring(content_var, length(content_var)-3, 4);content_var = substring(content_var, position(']' in content_var)+2, position(' 遙控' in content_var) - 1 - position(']' in content_var));if TRIM(pos_var) = '分位]' thencontent_var = concat(content_var,' 分閘');status_var = 0;elsecontent_var = concat(content_var,' 合閘');status_var = 1;end if;sql_var = 'select count(*) from scada_event_yx where occur_time > '''||time_0_var||''' and occur_time < '''||time_1_var||''' and obj_id= '||obj_id_var||' and status = '||status_var||' and alarm_type = 1';execute immediate sql_var into cnt_var;soe_time_var = occur_time_var - 2 second;soe_msec_var = milli_second_var + 3;if cnt_var = 0 thensql_var = 'insert into scada_event_yx_1(occur_time,milli_second,obj_id,dev_id,rtu_id,rtu_type,comm_type,manu_fac,feeder_id,station_id,status,content,sysid,alarm_type,yk_of_yx,result) values($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,1,1,-123,0)';execute immediate sql_var using occur_time_var,milli_second_var,obj_id_var,dev_id_var,rtu_id_var,rtu_type_var,comm_type_var,manu_fac_var,feeder_id_var,station_id_var,status_var,content_var;sql_var = 'insert into scada_event_1(occur_time,milli_second,obj_id,dev_id,station_id,status,content,sysid,alarm_type,key_id_tag,tag_id) values($1,$2,$3,$4,$5,$6,$7,1,1,''-123'',-123)';execute immediate sql_var using occur_time_var,milli_second_var,obj_id_var,dev_id_var,station_id_var,status_var,content_var;content_var = concat(' ',content_var);content_var = concat(soe_msec_var,content_var);content_var = concat('.',content_var);content_var = concat(soe_time_var,content_var);content_var = concat('SOE時(shí)標(biāo):',content_var);sql_var = 'insert into scada_event_yx_1(occur_time,milli_second,soe_time,soe_msecond,obj_id,dev_id,rtu_id,rtu_type,comm_type,manu_fac,feeder_id,station_id,status,content,sysid,alarm_type,yk_of_yx,result) values($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,1,3,-123,0)';execute immediate sql_var using occur_time_var,milli_second_var,soe_time_var,soe_msec_var,obj_id_var,dev_id_var,rtu_id_var,rtu_type_var,comm_type_var,manu_fac_var,feeder_id_var,station_id_var,status_var,content_var;sql_var = 'insert into scada_event_1(occur_time,milli_second,soe_time,soe_msecond,obj_id,dev_id,station_id,status,content,sysid,alarm_type,key_id_tag,tag_id) values($1,$2,$3,$4,$5,$6,$7,$8,$9,1,3,''-123'',-123)';execute immediate sql_var using occur_time_var,milli_second_var,soe_time_var,soe_msec_var,obj_id_var,dev_id_var,station_id_var,status_var,content_var;end if;end LOOP;close trigger_cur; END;總結(jié)
以上是生活随笔為你收集整理的【指标统计】根据遥控补全遥信的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CentOS创建快捷按钮并设置文件图标
- 下一篇: CentOS上修改用户名