Oracle定时任务调度存储过程

时间:2023-01-06 07:59:06

调度存储过程,含输入参数,此为最终正确结果。

DECLARE
  V_CNT        INTEGER;
  V_JOB_NO     INTEGER;
  V_ACTIVE_TAB VARCHAR2(30);
  V_LOGIN_TAB  VARCHAR2(30);
  V_LOGIN_TMP  VARCHAR2(30);
  V_APP_KEY    VARCHAR2(30);
BEGIN
  V_ACTIVE_TAB := 'MBI_TEST_ROLE_ACTIVE';
  V_LOGIN_TAB  := 'MBI_TEST_ROLE_LOGIN';
  V_LOGIN_TMP  := 'MBI_TEST_LOGIN_TMP';
  V_APP_KEY    := 'TEST';
  SELECT COUNT(1) INTO V_CNT FROM DUAL;
  DBMS_JOB.SUBMIT(V_JOB_NO,
                  'PRO_CALL_OFFLINE_CALC(''' || V_ACTIVE_TAB || ''',''' ||
                  V_LOGIN_TAB || ''',''' || V_LOGIN_TMP || ''',
                  ''' || V_APP_KEY || ''');
 ',
                  SYSDATE,
                  'TRUNC(SYSDATE + 1) + (2 * 60 + 30) / (24 * 60)');
END;

碰到的问题:

ORA-01008 并非所有变量都已绑定,是变量赋值使用问题,代码上标红处出现错误,错误如下,多了个":"

  DBMS_JOB.SUBMIT(:V_JOB_NO,

查看定时任务:

SELECT JOB,NEXT_DATE,NEXT_SEC,FAILURES,BROKEN FROM USER_JOBS;