如何在 oracle 作业调度程序中启用程序?
Posted
技术标签:
【中文标题】如何在 oracle 作业调度程序中启用程序?【英文标题】:How to enable a program in oracle job schedular? 【发布时间】:2016-03-06 08:14:02 【问题描述】:这是我的代码。当我执行执行时
dbms_scheduler.run_job('daily_update_job_v1');
出现以下错误
ORA-27367:程序“.PROG_RESET_LOG_STATUS_V1”与此关联 作业被禁用。
关于以下问题的任何帮助。谢谢
CREATE OR REPLACE PROCEDURE reset_log_status_v1 ( LOG_STATUS IN
VARCHAR2) IS
BEGIN
UPDATE (
SELECT
B.LOG_STATUS
FROM LP_QUAT_ISSUE_MST A,
LP_QUAT_ISSUE_DTL B
WHERE A.QUAT_NO = B.QUAT_NO
AND (trunc(A.QUAT_DT) + A.NO_DAY_GIVEN) <= trunc(SYSDATE)
)
SET LOG_STATUS ='N';
END;
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name => 'PROG_RESET_LOG_STATUS_V1',
program_action => 'RESET_LOG_STATUS_V1',
program_type => 'STORED_PROCEDURE');
END;
BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE (
schedule_name => 'daily_update_v1',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; INTERVAL=1',
end_date => SYSTIMESTAMP + INTERVAL '365' day,
comments => 'DAILY UPDATE');
END;
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'daily_update_job_v1',
program_name => 'PROG_RESET_LOG_STATUS_V1',
schedule_name => 'daily_update_v1'
);
END;
execute dbms_scheduler.run_job('daily_update_job_v1');
【问题讨论】:
与ENABLE
?或者启用它during creation?
你能帮我翻译一下语法吗?谢谢
语法记录在 PL/SQL 包和类型手册中。在那里,参考CREATE JOB
的enabled
选项,它特别指出 *默认情况下,此属性设置为 FALSE,因此,该作业被创建为禁用。 * 见docs.oracle.com/cd/E11882_01/appdev.112/e40758/…
【参考方案1】:
DBMS_SCHEDULER.ENABLE('PROG_RESET_LOG_STATUS_V1');
【讨论】:
以上是关于如何在 oracle 作业调度程序中启用程序?的主要内容,如果未能解决你的问题,请参考以下文章