--这是我的报错图片,我的建job任务的sql如下:
begin
  sys.dbms_job.submit(job => :job,
                      what => 'declare
  out_flag number;
  out_message varchar2(1000);
begin
  exec YH_TMQY_MERGER_Update(out_flag,out_message);
end',
                      next_date => to_date('20-11-2009 01:01:10', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1');
  commit;
end;
/

解决方案 »

  1.   

    what部分写得不对
    这个过程干什么用的
    两个传入参数有什么用
      

  2.   

    begin
      sys.dbms_job.submit(job => :job,
                          what => 'declare
      out_flag number;
      out_message varchar2(1000);
      vcall  你需要的類型
    begin
      vcall := YH_TMQY_MERGER_Update(out_flag,out_message);
    end;',
                          next_date => to_date('20-11-2009 01:01:10', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'sysdate+1');
      commit;
    end;試試這樣呢
      

  3.   


    what 直接指定存储过程名字就可以了。 不用手动的来exec.begin
      sys.dbms_job.submit(job => :job,
                          what => test_sql;',
                          next_date => trunc(sysdate)+23/24,
                          interval => 'trunc(next_day(sysdate,''星期五''))+23/24');
      commit;
    end; 参考blog:
    Oracle dbms_job package 用法小结
    http://blog.csdn.net/tianlesoftware/archive/2009/10/21/4703133.aspx
      

  4.   

    两个参数没有定义,是空值。如果传入空值没关系的话就写成
    begin
      sys.dbms_job.submit(job => :job,
                          what => 'YH_TMQY_MERGER_Update(null,null);',
                          next_date => to_date('20-11-2009 01:01:10', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'sysdate+1');
      commit;
    end;
    /
      

  5.   

    如果YH_TMQY_MERGER_Update 是function
    這樣寫應該編譯通不過吧?
      

  6.   

    使用:job要先在前面声明绑定变量
    variable job number;
      

  7.   

     MYPROC( ina         IN  VARCHAR2,
    ------------------以下为必须输出参数组---------------------------------
     outa OUT NUMBER,
     outb  OUT VARCHAR2)则 在建立job的代码中
    创建JOB
      begin
      sys.dbms_job.submit(job => :job,
                          what => '
                                 declare 
                                        
                                        outa number; --定义输出变量
                                         outb varchar2(40); 
                                begin 
                                      MYPROC(''输入'',outa =>outa ,outb =>outb ); 
                                end;',
                          next_date => to_date('10-10-2006 08:48:34', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'sysdate+1');
      commit;
    end;