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_监测系统_数据备份存储过程—备份原始数据,每十分钟一条,取平均值的更多相关文章

  1. PROCEDURE_监测系统_告警信息存储过程—产生告警信息插入告警表

    create or replace procedure proc_alarmlog(in_id   in number, --采集器编码                                 ...

  2. PROCEDURE_监测系统_原始数据报表数据生成存储过程—求每天平均值插入多表视图

    create or replace procedure proc_generate_report(in_date in varchar2) is  v_retCode varchar2(20);  v ...

  3. TRIGGERS_监测系统_原始数据表触发器—调用告警信息存储过程

    //每次向originaldata表中插入数据就会触发该触发器 create or replace trigger originaldata_to_alarm  after insert on ori ...

  4. TRIGGERS_监测系统_多表视图触发器—向原始数据报表中插入数据

    Create Or Replace Trigger trg_view_report  Instead Of Insert or update or delete on view_for_report  ...

  5. 如何隐藏掉SQL Server中自带系统数据库,数据表,存储过程等显示文件,只显示用户的数据库,数据表等文件

    企业管理器了,---->   编辑该数据库的注册属性--->“常规”属性页下面-->“显示系统数据库和系统对象”的选项去掉

  6. ocp11g培训内部教材_053课堂笔记(043)_数据备份

    053:数据库高级管理: 目录 第一部分:数据库备份与恢复... 4 第一章:备份恢复概述... 4 1.1 备份的意义: 4 1.2 数据库故障的类型:... 4 1.3 制定你的备份和恢复的计划. ...

  7. SQL Server 数据备份存储过程

    原文:SQL Server 数据备份存储过程 今天开园,分享一下我一直在使用的数据备份存储过程,欢迎转载!!! ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  8. 数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下

    数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下 作者:Eric 微信:loveoracle11g 1.创建pfile文件 # su - ora11g # cd $ORAC ...

  9. 通过rsync+inotify实现数据的实时备份

    我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.tar备份方式相比,r ...

随机推荐

  1. JS继承六大模式

    1.原型链 function SuperType(){this.property = true;} SuperType.prototype.getSuperValue = function(){ret ...

  2. centos在安装apache2.4版本的时候遇到ARP not found解决办法

    今日编译apache时出错: #./configure --prefix……检查编辑环境时出现: checking for APR... noconfigure: error: APR not fou ...

  3. 畅通工程续--hdu1874

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. JAVA实现实用的ZIP压缩与解压

    http://blog.csdn.net/z69183787/article/details/38555913

  5. Qt工具知多少

    一级题目: Qt Designer — 所见即所得的界面设计工具, 可以用拖拽的方式将控件排布在界面上,支持layout, 支持signal/slot编辑. 生成的文件保存为ui格式, ui是xml格 ...

  6. jquery第六期:位置选择器

    <html> <head> <script type="text/javascript" src="jquery-1.10.1.js&quo ...

  7. mac OSX上eclipse adb无法识别(调试)小米的解决方案

    最近在Mac上开发安卓,用小米2a作为开发机,连上电脑后发现idea和eclipse真机调试的时候都提示USB device not found.经过一番google和百度,终于找到了解决方案,在这里 ...

  8. EBS R12 查询EBS用户相关SQL

    --R12查询EBS在线用户SQL  SELECT U.USER_NAME,        APP.APPLICATION_SHORT_NAME,        FAT.APPLICATION_NAM ...

  9. 第04讲- Android项目目录结构分析

    学习内容: 1.        认识R类(R.java)的作用 R.java是在建立项目时自动生成的,这个文件是只读模式,不能更改.R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R ...

  10. 【转】网络视频监控P2P解决方案

    一.摘要 本文分析了日益增长的民用级别家庭和个人网络视频监控市场的需求特点,并给出了一种经济可行易于大规模部署的P2P解决方案. 由于篇幅有限,本文只给出了方案的思路,未对更深入的技术细节做详细的论述 ...