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. Python基础第四天

    必须掌握的内置函数 bytes() divmod() eval() exec() isinstance() range() 常用函数 1.数学相关 abs(x) abs()返回一个数字的绝对值.如果给 ...

  2. 升级10.11后使用CocoaPod出现-bash: pod: command not found 解决办法-备

    升级10.11后,运行pod命令出现: -bash: pod: command not found 解决办法: sudo gem install -n /usr/local/bin cocoapods ...

  3. C之函数指针

    这方面的技能,在观察系统调用时,是很需要的. 但我不是很熟悉,另外,要再会函数指针数组的话,那就更强啦~~ 按<HEAD FIRST C>作了个样例: cat find.c #includ ...

  4. SGU176 Flow construction

    http://acm.sgu.ru/problem.php?contest=0&problem=176 有源汇上下界最小流,可以选择跟有源汇上下界最大流一样的建图方式,然后用二分去二分t-&g ...

  5. 5.1.1 读取Redis 数据

    Redis 服务器是Logstash 推荐的Broker选择,Broker 角色就意味会同时存在输入和输出两个插件. 5.1.1 读取Redis 数据 LogStash::Input::Redis 支 ...

  6. 利用autoit自动关闭指定标题窗口

     最近使用PL/SQL Developer 比较两个数据库数据差异,因部分表上没有主键,PL/SQL 就会弹出一个确认框提示某某表没有主键.因为有很多表没有主键,就不停的弹出确认窗口,得不停的点击 ...

  7. Cracking the coding interview 第一章问题及解答

    Cracking the coding interview 第一章问题及解答 不管是不是要挪地方,面试题具有很好的联系代码总用,参加新工作的半年里,做的大多是探索性的工作,反而代码写得少了,不高兴,最 ...

  8. 网站10大致命SEO错误

    1.关键字堆砌 我想不出有比胡乱将这些复制的内容放在网站上更差劲的事情了.网站复制一遍又一遍,你肯定也不想看到这么差劲的网站复制. 你在明白我在做什么吗?我并不是一个那么差劲的编辑者,我只是想说明一个 ...

  9. 【转】UltraISO制作U盘启动盘安装Win7/9/10系统攻略

    U盘安装好处就是不用使用笨拙的光盘,光盘还容易出现问题,无法读取的问题.U盘体积小,携带方便,随时都可以制作系统启动盘. U盘建议选择8G及以上大小的. 下面一步一步讲解如果制作U盘安装盘: 1.首先 ...

  10. hbase的thriftserver开启

    说明:hbase的thriftserver默认已经编译好,可以使用,不需要跟hadoopthrift一样配置. 要使用Hbase的thrift接口,必须将它的服务启动,命令行为: hbase-deam ...