求助:使用系统生产的job,迁移到数据库中,报错。错误提示:ORA-01008: 并非所有变量都已绑定DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
    (
      job        => X
     ,what       => 'REMOVE_HISTORYACCOUNT;'
     ,next_date  => to_date('07-11-2011 09:37:58','mm/dd/yyyy hh24:mi:ss')
     ,interval   => 'TRUNC(SYSDATE+1)+1/24'
     ,no_parse   => FALSE
    );
:JobNumber := to_char(X);
END;代码完全是使用系统生产的

解决方案 »

  1.   

    问题解决了。到数据库中重新生成一下JOB执行,无错误。DECLARE
      X NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT
        (
          job        => X
         ,what       => 'REMOVE_HISTORYACCOUNT;'
         ,next_date  => to_date('07-11-2011 09:37:58','mm/dd/yyyy hh24:mi:ss')
         ,interval   => 'TRUNC(SYSDATE+1)+1/24'
         ,no_parse   => FALSE
        );
    SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
    END;
      

  2.   

    :JobNumber := to_char(X);
    -- 上面这句的前面冒号有问题吧?
      

  3.   

    DECLARE
      X NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT
        (
          job        => X
         ,what       => 'REMOVE_HISTORYACCOUNT;'
         ,next_date  => to_date('07-11-2011 09:37:58','mm/dd/yyyy hh24:mi:ss')
         ,interval   => 'TRUNC(SYSDATE+1)+1/24'
         ,no_parse   => FALSE
        );
       --:JobNumber := to_char(X);--这一行多余,去掉,并且JobNumber从何而来
       commit; --注意提交
    END;
      

  4.   

    :JobNumber := to_char(X);
    这个确实是多余的
      

  5.   


    DECLARE
      X NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT
        (
          job        => X
         ,what       => 'REMOVE_HISTORYACCOUNT;'
         ,next_date  => to_date('07-11-2011 09:37:58','mm/dd/yyyy hh24:mi:ss')
         ,interval   => 'TRUNC(SYSDATE+1)+1/24'
         ,no_parse   => FALSE
        );
    END;
      

  6.   

    :JobNumber := to_char(X);这句是没有用处的删除掉。
    另外还要加最后提交commit