zoukankan      html  css  js  c++  java
  • 一个简单的Oracle任务

    一、在PLSQL中创建表:

    create table HWQY.TEST(CARNO VARCHAR2(30),CARINFOID NUMBER)

    二、在PLSQL中创建存储过程:

    create or replace procedure pro_test
    AS
    carinfo_id 
    number;
    BEGIN
    select s_CarInfoID.nextval into carinfo_id from dual;
    insert into test(test.carno,test.carinfoid) values(carinfo_id,'123');
    commit;
    end pro_test;

    三、在SQL命令窗口中启动任务:
    在SQL>后执行:

    VARIABLE jobno number;
    begin
    DBMS_JOB.SUBMIT(:jobno,
    'pro_test;',SYSDATE,'sysdate+1/24/12');
    commit;
    end;
    /

    四、跟踪任务的情况(查看任务队列):

    SQL>  select job,next_date,next_sec,failures,broken from user_jobs;

           JOB NEXT_DATE   NEXT_SEC           FAILURES BROKEN
    ---------- ----------- ---------------- ---------- ------
             1 2008-2-22 ?01:00:00                  0 N


    说明有一个任务存在了。
    执行 select * from test t 查看定时任务的结果。可以看出定时任务是正常执行了的。

    五、停止已经启动的定时任务:

    先执行 select job,next_date,next_sec,failures,broken from user_jobs; 以查看定时任务的job号。
    在SQL>中执行下面的语句停止一个已经启动的定时任务:

    begin
     dbms_job.remove(
    1);
    commit;
    end;
    /


    表示停止job为1的任务。
    执行后显示如下:PL/SQL procedure successfully completed

    六、查看进程数:

    show parameter job_queue_processes;
    --必须>0,否则执行下面的命令修改:
    alter system set job_queue_processes=5;

    七、再创建一个任务(每5分钟执行一次):

    variable jobno number;
    begin
    dbms_job.submit(:jobno, 
    'pro_test;',sysdate,'sysdate+1/24/12');
    commit;
    end;
     
    /

    建立一个定时任务后,在PLSQL中查看JOB,它的sql语句类似的是如下:

    begin
    sys.dbms_job.submit(job 
    => :jobno,
    what 
    => 'pro_test;',
    next_date 
    => to_date('21-02-2008 17:37:26''dd-mm-yyyy hh24:mi:ss'),
    interval 
    => 'sysdate+1/24/12');
    commit;
    end;
    /

    所以,创建一个任务的完整的格式是:

    variable jobno number;
    begin
    sys.dbms_job.submit(job 
    => :jobno,
    what 
    => 'pro_test;',
    next_date 
    => to_date('21-02-2008 17:37:26''dd-mm-yyyy hh24:mi:ss'),
    interval 
    => 'sysdate+1/24/12');
    commit;
    end;
    /
    --系统会自动分配一个任务号jobno。

    八、 执行结果:

    select job,next_date,next_sec,failures,broken from user_jobs;

    JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
    1 1 2008-2-22 AM 01:00:00 01:00:00 0 N
    2 2 2008-2-21 PM 05:42:45 17:42:45 0 N
    3 3 2008-2-21 PM 05:42:45 17:42:45 0 N
  • 相关阅读:
    springboot 和 spring clould 的版本匹配问题
    行到水穷处,坐看云起时!
    转: 从单体应用 -> SOA--> 微服务 ,服务治理 [熔断,限流,降级,服务恢复,服务容错,监控等等]---> RPC ---> 下一代技术[Service Mesh]
    spring-boot自定义线程池
    千与千寻的内容抓手
    哲学三问
    简约的人生
    关于中间件整理
    此心光明,亦复何言!
    能容的下你身边比你优秀的人---是一种修行
  • 原文地址:https://www.cnblogs.com/tohen/p/1335186.html
Copyright © 2011-2022 走看看