zoukankan      html  css  js  c++  java
  • SQL存储过程小案例

    需求:系统有张表数据量特别大,现在打开列表展开数据特变慢,想按时间把部分数据迁移到新表,旧表数据删掉。

    写了一个存储过程

    create or replace procedure updateinsert is 
    begin 
     insert  into WF_WORK_HISTORY select  *  from  wf_work h   where     
     to_char(h.workcreatedate,'yyyy-MM-dd')<= to_char(sysdate-1000,'yyyy-MM-dd')and EXTERNALSYSTEMKEY is not null  ; 
    commit;
    DELETE  from   wf_work  h where     
     to_char(h.workcreatedate,'yyyy-MM-dd')<= to_char(sysdate-1000,'yyyy-MM-dd')  and EXTERNALSYSTEMKEY is not null  ;
    commit;
     
    end; 
    select distinct name From user_source where type = 'PROCEDURE';//查询存储过程

    sysdate获取当前日期。向前退了1000天,然后把当前日期的一千天以前的所有数据插入到新表中。后续做了删除操作

    (我在这里遇到一个低级的错误。我在一台开发服务器调试好了,直接把新建表通过导出sql,在新服务器上执行了下sql,没注意看新表和旧表数据列数有差异,导致一直报错,一直调试)

    创建好存储过程后,来新建定时任务:

        declare  job3  number; 
          begin 
          dbms_job.submit(job3,'updateinsert;',sysdate,'sysdate+1/1440');----这里直接调用创建好的test存储过程,档期日期的1分钟后执行一次
          commit; ----避免在plsql中点击提交按钮
          end;   
    SELECT t.* FROM  dba_jobs t   //查询所有任务
    这里是一些常用的定时任务相关命令
    begin
    DBMS_JOB.RUN(3); /*3 job的id*/ end; //触发定时任务 begin -- Call the procedure sys.dbms_job.remove(3); end; //删除定时任务
  • 相关阅读:
    波涛 - 系统交易方法(2013年2月28日)
    【美】柯蒂斯·费思 - 海龟交易法则(2012年12月25日)
    【美】迈克尔·卡沃尔 - 趋势跟踪(2012年12月3日)
    DAX/PowerBI系列
    DAX基础入门
    (玩起来)DAX/PowerBI系列
    DAX/PowerBI系列
    DAX/PowerBI系列
    DAX/PowerBI系列
    MDX 用Ancestors得到Hierarchy中指定Level的值(附带SCOPE用法之一)
  • 原文地址:https://www.cnblogs.com/sjzxs/p/12970928.html
Copyright © 2011-2022 走看看