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. 深入理解Azure自动扩展集VMSS(2)

    VMSS中Auto Scale基本原理及诊断 在前面的介绍中,我们看到通过定义规则可以实现虚拟机扩展集的auto scale,那么在后台执行上VMSS的扩展依赖于哪些组件,出现问题(比如自动扩展没有发 ...

  2. 前端面试题之js篇

    前端面试也可为是鱼龙混杂,各公司面试题的种类也大不相同,有的公司注重基础语法,面试题偏于ES,有的公司偏于页面逻辑,会考差一些js的应用,现将遇到过的题和典型的题整理一下. 1. 0.2-0.1 == ...

  3. VBoxManage.exe: error: Resize hard disk operation for this format is not implemented yet!

    VirtualBox虚拟磁盘空间不够了,默认10G.想扩大,图形界面下没有找到可操作菜单.Google了一下用 Vbox自带的命令工具VBoxManage即可解决. C:\Program Files\ ...

  4. Bitly缩短网址服务 - Blog透视镜

    网站的网址过长或是含有非英文或数字符号,会导致在BBS或者微网志中分享给好友时,产生很多的不方便,Bitly是个缩短网址服务的网站,提供1个短网址转向指定到长网址,免费使用且提供统计报表,例如本篇文章 ...

  5. position 为absolute时/float 为right,span为block

    元素分为内联元素和区块元素两类(当然也有其它的),在内联元素中有个非常重要的常识,即内两元素是不可以设置区块元素所具有的样式,例如:width | height.relative : 原来是什么类型的 ...

  6. C51汇编伪指令

    1.DS ---预留存储区命令格式: [标号:] DS   表达式值其功能是从指定地址开始,定义一个存储区,以备源程序使用.存储区预留的存储单元数由表达式的值决定. ;从标号TEP地址处开始保留1个存 ...

  7. 【转】git与github在ubuntu下的使用 -- 不错

    原文网址:http://www.cnblogs.com/cocowool/archive/2010/10/19/1855616.html 最近开始使用git对kohana3的文档做一些补充的工作,使用 ...

  8. JS获取按下的键盘字符

    <html> <head> KeyPress Test!<hr> <script language="javascript"> fu ...

  9. Array vs Linked List

    Access: Random / Sequential 1. Array element can be randomly accessed using index 2. Random access f ...

  10. [Oracle] 参数修改小结

    v$parameter Oracle参数的修改比较复杂,有些参数是可以在session级别修改,有些则必须在system级别修改,有些参数修改后马上生效(不需要重启),有些参数则必须重启才能生效,那么 ...