PROCEDURE_监测系统_数据备份存储过程—备份原始数据,每十分钟一条,取平均值
create or replace procedure proc_backup_originaldata(retCode out varchar2, -- 返回码
retMsg out varchar2) --返回信息
is
v_now varchar2(20):=to_char(sysdate,'yyyy-mm-dd');
cursor c_backup is
select * from originaldata t where t.time <=v_now;
v_filename varchar2(50):=v_now||'.txt';
v_datastr varchar2(1000):='';
v_file utl_file.file_type;
begin
retCode:='1';
retMsg:='原始数据备份完成';
--备份原始数据,每十分钟一条,取平均值
insert into warehousemonitor--originaltempdata
(id,
temperature1,
temperature2,
temperature3,
temperature4,
temperature5,
temperature6,
temperature7,
temperature8,
temperature9,
temperature10,
humidity1,
humidity2,
humidity3,
humidity4,
humidity5,
humidity6,
humidity7,
humidity8,
humidity9,
humidity10,
concentration1,
concentration2,
concentration3,
time)
select t.id,
round(avg(t.temperature1),2),
round(avg(t.temperature2),2),
round(avg(t.temperature3),2),
round(avg(t.temperature4),2),
round(avg(t.temperature5),2),
round(avg(t.temperature6),2),
round(avg(t.temperature7),2),
round(avg(t.temperature8),2),
round(avg(t.temperature9),2),
round(avg(t.temperature10),2),
round(avg(t.humidity1),2),
round(avg(t.humidity2),2),
round(avg(t.humidity3),2),
round(avg(t.humidity4),2),
round(avg(t.humidity5),2),
round(avg(t.humidity6),2),
round(avg(t.humidity7),2),
round(avg(t.humidity8),2),
round(avg(t.humidity9),2),
round(avg(t.humidity10),2),
round(avg(t.concentration1),2),
round(avg(t.concentration2),2),
round(avg(t.concentration3),2),
max(t.time)
from originaldata t
where t.time <= v_now
group by t.id,
substr(t.time, 1, length(t.time) - 6),
trunc(to_char(to_date(t.time, 'yyyy-mm-dd hh24:mi:ss'), 'mi') / 10);
--生成报表数据
proc_generate_report(v_now);
--写文件
v_file:=utl_file.fopen('BAK',v_filename,'w');--写模式打开文件
for data in c_backup loop
v_datastr:=data.id||'|'||data.ipcode||
'|'||data.temperature1||'|'||data.humidity1||
'|'||data.temperature2||'|'||data.humidity2||
'|'||data.temperature3||'|'||data.humidity3||
'|'||data.temperature4||'|'||data.humidity4||
'|'||data.time||
'|'||data.temperature5||'|'||data.humidity5||
'|'||data.temperature6||'|'||data.humidity6||
'|'||data.temperature7||'|'||data.humidity7||
'|'||data.temperature8||'|'||data.humidity8||
'|'||data.temperature9||'|'||data.humidity9||
'|'||data.temperature10||'|'||data.humidity10||
'|'||data.concentration1||'|'||data.concentration2||'|'||data.concentration3||
'|'||data.backup1||'|'||data.backup2||'|';
utl_file.put_line(v_file,v_datastr);--向文件中写入行
end loop;
utl_file.fclose(v_file);--关闭文件句柄
--删除已备份数据
delete from originaldata t where t.time <=v_now;
commit;
exception when others then
retCode:=sqlcode;
retMsg:=sqlerrm||sysdate;
end proc_backup_originaldata;
PROCEDURE_监测系统_数据备份存储过程—备份原始数据,每十分钟一条,取平均值的更多相关文章
- PROCEDURE_监测系统_告警信息存储过程—产生告警信息插入告警表
create or replace procedure proc_alarmlog(in_id in number, --采集器编码 ...
- PROCEDURE_监测系统_原始数据报表数据生成存储过程—求每天平均值插入多表视图
create or replace procedure proc_generate_report(in_date in varchar2) is v_retCode varchar2(20); v ...
- TRIGGERS_监测系统_原始数据表触发器—调用告警信息存储过程
//每次向originaldata表中插入数据就会触发该触发器 create or replace trigger originaldata_to_alarm after insert on ori ...
- TRIGGERS_监测系统_多表视图触发器—向原始数据报表中插入数据
Create Or Replace Trigger trg_view_report Instead Of Insert or update or delete on view_for_report ...
- 如何隐藏掉SQL Server中自带系统数据库,数据表,存储过程等显示文件,只显示用户的数据库,数据表等文件
企业管理器了,----> 编辑该数据库的注册属性--->“常规”属性页下面-->“显示系统数据库和系统对象”的选项去掉
- ocp11g培训内部教材_053课堂笔记(043)_数据备份
053:数据库高级管理: 目录 第一部分:数据库备份与恢复... 4 第一章:备份恢复概述... 4 1.1 备份的意义: 4 1.2 数据库故障的类型:... 4 1.3 制定你的备份和恢复的计划. ...
- SQL Server 数据备份存储过程
原文:SQL Server 数据备份存储过程 今天开园,分享一下我一直在使用的数据备份存储过程,欢迎转载!!! ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- 数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下
数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下 作者:Eric 微信:loveoracle11g 1.创建pfile文件 # su - ora11g # cd $ORAC ...
- 通过rsync+inotify实现数据的实时备份
我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.tar备份方式相比,r ...
随机推荐
- attachEvent和addEventListener
attachEvent和addEventListener在前端开发过程中经常性的使用,他们都可以用来绑定脚本事件,取代在html中写obj.onclick=method. 相同点: 它们都是dom对象 ...
- 用jquery可以用使用serialize()序列化表单值,那有没有什么方法可以将值填充到表单中呢? (一段不错的代码)
serialize()的作用,是生成一个类似这种格式的字符串用于ajax提交 a=&b=&c=.你想将值填写到表单,首先要有值,然后就是表单控件的id或者能唯一定位控件的属性.然后就$ ...
- MVC之实体框架(数据持久化框架)EntityFrameWork(EF)
EF - EntityFrameWork 中文名:实体框架(数据持久化框架) 1.使用EF查询(Linq to EF) 1.1使用标准查询运算符来查询 OumindBlogEntities db = ...
- C之函数指针
这方面的技能,在观察系统调用时,是很需要的. 但我不是很熟悉,另外,要再会函数指针数组的话,那就更强啦~~ 按<HEAD FIRST C>作了个样例: cat find.c #includ ...
- Send竞争对手:百度云一小时,QQ超大附件最多支持2G,邮件附件20M到50M不等(附国外所有storage列表)——痛点是,最大传输2G,最大容量只有3G(和微云不是一回事),转存到微云文件不能超过1G
QQ邮箱最大可发送50M普通附件(群邮件则限制在2M).此外也可以使用超大附件功能,支持将1G的文件发往任意邮箱.QQ邮箱根据你的QQ邮箱容量的不同制定相应的接受附件限制,包括附件在内,2G用户所发送 ...
- 《Programming WPF》翻译 第6章 3.二进制资源
原文:<Programming WPF>翻译 第6章 3.二进制资源 尽管ResourceDictionary和系统级别的资源适合于作为数据存在于对象中,然而,并不是所有的资源都能很好的满 ...
- 【转】【Android】HAL分析
原文网址:http://www.cnblogs.com/lcw/p/3335505.html HAL概述 以下是基于android4.0.3,对应其他低版本的代码,可能有所差异,但基本大同小异. An ...
- 【转】Android(4.2) Sensors 学习——G-sensor,Gyroscope驱动移植
原文网址:http://blog.csdn.net/nxh_love/article/details/11804841 本人对驱动可谓是一点不懂,鉴于公司目前高驱动的人手不够,所以我也只能两眼一抹黑硬 ...
- Binary Search Tree BST Template
Use one queue + size variable public class Solution { public ArrayList<ArrayList<Integer>&g ...
- grep命令实例
grep一般用于查找文件中含有某些字符串的行,其命名格式如下 grep [OPTIONS] PATTERN [FILE...] 下面例举grep在linux使用过程中其常用使用实例: 1.grep递归 ...