暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle DBMS_SCHEDULER作业 (需要使repeat_interval参数化)

ASKTOM 2019-03-27
798

问题描述

如何在以下作业中动态检索repeat_interval的值:-

开始
DBMS_SCHEDULER.create_job (
job_name => 'create_Subpartition_Ongoing_LOCDB_M',
作业类型 => “PLSQL_BLOCK”,
job_action => '开始 coredb.sp_dutl_create_subpart_ongoing_monthly(''LOCATION_ACTIVITY_DB'',''5''); 结束;',
开始日期 => 系统戳,
end_date => null,
重复间隔 => '频率 = 每月; 每月 = 1; 按小时 = 4; 按分钟 = 10; 按秒 = 0;',
enabled => TRUE);
结束;

因此,我将不得不制作一个表并从该表中获取值。我该怎么做?

专家解答

在dbms_scheduler内部有两个例程

获取属性
set_attribute

您可以使用这些来检索和更改间隔。

SQL> BEGIN
  2    DBMS_SCHEDULER.create_job (
  3      job_name        => 'MY_JOB',
  4      job_type        => 'PLSQL_BLOCK',
  5      job_action      => 'BEGIN null; END;',
  6      start_date      => sysdate+1,
  7      repeat_interval => 'freq=hourly; byminute=0; bysecond=0;',
  8      enabled         => TRUE);
  9  END;
 10  /

PL/SQL procedure successfully completed.

SQL>
SQL> set serverout on
SQL> declare
  2    x1 varchar2(100);
  3  begin
  4    dbms_scheduler.获取属性 (
  5      name      => 'MY_JOB',
  6      attribute => 'repeat_interval',
  7      value     => x1);
  8    dbms_output.put_line(x1);
  9  end;
 10  /
freq=hourly; byminute=0; bysecond=0;
复制


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论