我是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 举报,一经查实,本站将立刻删除。