微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在oracle sql开发人员中使用链接一个接一个地执行该过程?

我是Oracle sql的初学者.我正在使用Oracle sql开发人员工具.我有两个程序叫做p1和p2.

如何使用链概念在每天的特定时间逐个执行程序,这意味着我应该首先执行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','P1');  
DEFINE_CHAIN_STEP('my_chain1','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;',//In my case I should execute afternoon 1.00 clock so I used 13.00 in byhour
       enabled         => TRUE);
    END;
    /

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐