语句如下,报错如下
报调用存储过程时参数个数或类型错误
-- 创建定时任务,判断如果已有这个定时任务,则删除重建
DECLARE JobNum NUMBER(5) := 0;
        JobID  NUMBER(5) := 0;
BEGIN
  SELECT COUNT(*) INTO JobNum FROM DBA_JOBS WHERE UPPER(SUBSTRB(WHAT,1,30)) = UPPER('P_SCE_LOG_PayVerifyNochange');
  IF JobNum > 0 THEN
    SELECT NVL(JOB,0) INTO JobID FROM DBA_JOBS WHERE UPPER(SUBSTRB(WHAT,1,30)) = UPPER('P_SCE_LOG_PayVerifyNochange');
    IF JobID > 0 THEN
      DBMS_JOB.REMOVE(JobID);
      COMMIT;
    END IF;
  END IF;
END;
/
DECLARE
  v_Job  NUMBER;
BEGIN
  DBMS_JOB.SUBMIT(v_Job, 'P_SCE_LOG_PayVerifyNochange;', TRUNC(SYSDATE, 'HH24'), 'SYSDATE + 1/96');
  COMMIT;
END;
/

解决方案 »

  1.   

    P_SCE_LOG_PayVerifyNochange过程是不是有参数.有参数的可以写个匿名块填到what参数那里.
      

  2.   

    有参数,了解了,写个匿名块,让它来调用存储,然后在块上创建job?
      

  3.   

    类似这样
    DECLARE
      v_Job  NUMBER;
    BEGIN
      DBMS_JOB.SUBMIT(v_Job, 'declare 
                               varlist;
                              begin
                              procedurename(varlist);
                              end;', TRUNC(SYSDATE, 'HH24'), 'SYSDATE + 1/96');
      COMMIT;
    END;
    /