Oracle查询定时器、触发器相关操作

版权声明:杨杨杨~~的版权 https://blog.csdn.net/weixin_38316697/article/details/82845719

Oracle查询定时器、触发器相关操作

 

--查看定时任务  

字段含义:--查看定时任务  total_time 是次数 broken N表示未中断 

what执行任务(只能是存储过程 ,存储过程在Oracle中的Procedures下) interval 间隔

 select * from user_jobs

 --查看正在执行的定时任务

 select * from dba_jobs_running;

 --声明变量

  variable job2017 number;      

       begin

       dbms_job.submit(:job2017,'PKG_NRMS_OPERATION.CLEAN_DIRTY_DATA;',sysdate,'TRUNC(sysdate)+1+1/(24)');

       end;    

扫描二维码关注公众号,回复: 4271607 查看本文章

    --启用作业

       begin

       dbms_job.run(:job2017);

       end;      

    --删除作业

         begin

         dbms_job.remove(103);

         end;

    --停止一个已启动的定时任务      

 begin

  dbms_job.broken(64, true, sysdate);

  end;

  --查看进程数 命令语句 并不是sql

  show parameter job_queue_processes;

--停止正在运行的job

SELECT SID,SERIAL# FROM V$SESSION WHERE SID='&SID';

ALTER SYSTEM KILL SESSION '&SID,&SERIAL';

--用于修改interval参数值

dbms_job.interval(103, 'TRUNC(SYSDATE + 1)'); --修改为每隔一天运行一次

--用于修改next_date参数值

dbms_job.next_date(jobno,  trunc(sysdate + 1)); --修改最近一次待执行的时间至明天凌晨

--Packages里只有存储过程和函数,(视图相当于虚拟表) package bodies 包体相当于包的内容

--触发器

CREATE OR REPLACE TRIGGER change_task

    BEFORE INSERT OR UPDATE OR DELETE ON tsm_check_task FOR EACH ROW

declare

   restag varchar2(128);

BEGIN

      IF INSERTing OR updating THEN

        SELECT fldrestag INTO restag FROM TSM_CHECK_RULE WHERE fldid = :NEW.FLDCHECKRULE;

        :new.fldrestag := restag;

      END IF;

       EXCEPTION WHEN OTHERS THEN  NULL;

    END;

 大白话:

当tsm_check_task进行插入、修改、删除时

TSM_CHECK_RULE 里fldrestag 字段进行同步替换

猜你喜欢

转载自blog.csdn.net/weixin_38316697/article/details/82845719
今日推荐