存储过程带有两个时间输入参数,在PL/SQL里调试正常,如下:begin
  -- Call the procedure
 
  sp_export(d_fr_dt => '2006-02-01',
                d_to_dt => '2006-02-30');
end;但是准备新建一个JOB来自动运行这个存储过程,报错,是语法格式的问题吗,如下:declare
jobnum  integer;
begin
dbms_job.submit(:jobnum,'sp_export('||'2006-02-01','2006-02-30'||');',sysdate,'sysdate+1/24');
commit;
end;
请高手指点哪里出错了????

解决方案 »

  1.   

    dbms_job.submit(:jobnum,'sp_export('||'2006-02-01','2006-02-30'||');',sysdate','sysdate+1/24');
    好像是缺少了一个单引号
      

  2.   

    报的什么错,另外在job中调用存储过程,前面应该写包名吧
      

  3.   

    dbms_job.submit(:jobnum,'sp_export(' || chr(39) ||'2006-02-01'|| chr(39) || ',' || chr(39) '2006-02-30' || chr(39) ||');',sysdate,'sysdate+1/24');
    有点晕了
    chr(39)是字符'
      

  4.   

    (:jobnum,'sp_export(' || chr(39) ||'2006-02-01' || chr(39) || ',' || chr(39) || '2006-02-30' || chr(39) ||');',sysdate,'sysdate+1/24')
      

  5.   

    多谢各位的热心回答!报的错是这样的:警告窗口 "ORA-01008:not all variables bound"TO: zlz_212() 我按照你的写法还是报同样的错误.不知道加chr(39)是什么意思??另外,存储过程只是单纯的导入功能的存储功能,没有包体.到底是什么问题啊????
      

  6.   

    chr(39)是单引号 '
    declare
    jobnum  integer:=100;
    begin
    dbms_job.submit(jobnum,'sp_export(' || chr(39) ||'2006-02-01' || chr(39) || ',' || chr(39) || '2006-02-30' || chr(39) ||');',sysdate,'sysdate+1/24');
    commit;
    end;
      

  7.   

    拼接的串儿不对!!!declare
      jobnum  integer;
    begin
      dbms_job.submit(:jobnum,'sp_export(''2006-02-01'',''2006-02-30'');',sysdate,sysdate+1/24);
      commit;
    end;