sql - 如何使用链在oracle sql developer中依次执行过程?

标签 sql oracle job-scheduling chain

我是 Oracle SQL 的初学者。我正在使用 Oracle SQL 开发人员工具。我有两个程序叫 p1p2 .

如何使用链的概念每天在特定时间一个一个执行程序,这意味着我应该执行p1首先,一旦它完全执行。之后我必须执行 p2每天在那个特定的时间。

就我而言,我必须在 3.00 时钟执行。供您引用,请参阅以下示例代码。任何人都可以解决这个问题吗?提前致谢

BEGIN 
    DBMS_SCHEDULER.CREATE_CHAIN (
       chain_name            =>  'my_chain1',
       rule_set_name         =>  NULL,
       evaluation_interval   =>  NULL,
       comments              =>  NULL);
    END;
    /

    BEGIN
     DBMS_SCHEDULER.DEFINE_CHAIN_STEP('my_chain1', 'stepA', 'P1');
     DBMS_SCHEDULER.DEFINE_CHAIN_STEP('my_chain1', 'stepB', 'P2');

    END;
    /

    BEGIN
     DBMS_SCHEDULER.DEFINE_CHAIN_RULE('my_chain1', 'TRUE', 'START stepA');
     DBMS_SCHEDULER.DEFINE_CHAIN_RULE('my_chain1', 'stepA COMPLETED', 'Start stepB');
     DBMS_SCHEDULER.DEFINE_CHAIN_RULE('my_chain1', 'stepB COMPLETED', 'END');
    END;
    /

    BEGIN
     DBMS_SCHEDULER.ENABLE('my_chain1');
    END;
    /

    BEGIN
     DBMS_SCHEDULER.CREATE_JOB (
       job_name        => 'chain_job_1',
       job_type        => 'CHAIN',
       job_action      => 'my_chain1',
       repeat_interval => 'freq=daily;byhour=13;byminute=0;bysecond=0',  //In my case I should execute afternoon 1.00 clock so I used 13.00 in byhour
       enabled         => TRUE);
    END;
    /


注意:除了链条概念,也欢迎

最佳答案

我猜问题在这里:

DEFINE_CHAIN_STEP('my_chain1', 'stepA', 'P1');  
DEFINE_CHAIN_STEP('my_chain1', 'stepB', 'P2');

P1,p2 - 必须是调度程序(检查 dbms_scheduler.create_program)或调度程序链。

但问题是你真的需要调度器链吗?恕我直言,您正在尝试过度设计
   BEGIN
     DBMS_SCHEDULER.CREATE_JOB (
       job_name        => 'simple_plsqlBlock_job',
       job_type        => 'PLSQL_BLOCK',
       job_action      => 'begin p1;
                                 p2; 
                           end;',
       repeat_interval => 'freq=daily;byhour=13;byminute=0;bysecond=0',  //In my case I should execute afternoon 1.00 clock so I used 13.00 in byhour
       enabled         => TRUE);
    END;
    /

关于sql - 如何使用链在oracle sql developer中依次执行过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50981992/

相关文章:

sql - 甲骨文 : Use regular expression to filter data in field

sql - Oracle如何处理SQL中的存储函数调用?

java - JBOSS EAP 7.1连接oracle 12c数据库

operating-system - 对称多处理 (SMP) 和多处理 (MP) 之间有什么区别?

sql - 我需要对 sql 查询进行健全性检查,如果表中存在该值,则返回一个值;如果不存在,则返回默认值

sql - 插入或替换为旧值的总和

sql - 使用 OR 查询排除 SQL 中的结果

sql - 对 mySQL 中两个表的总和进行排序

apache-spark - Apache Spark中如何实现任务的动态负载均衡

sql-server - 弹性作业代理在逻辑应用程序中执行作业时立即超时