执行以下pl/sql块:
   
   declare
    job_no            number;           --jobid
    l_str_interval    varchar2(200);    --interval
    l_dt_starttime    date;             --when
begin
     l_dt_starttime := to_date(to_char(add_months(trunc(sysdate), 1), 'yyyymm')||'01000000', 'yyyy-mm-dd hh24-mi-ss');
     l_str_interval := to_char(add_months(trunc(sysdate), 1), 'yyyymm')||'01000000';  
     dbms_job.submit(job_no, 'null;aaa;' , l_dt_starttime, l_str_interval);  --这里异常
     commit;
end;
   
    出现:数据类型不一致: 应为 DATE, 但却获得 NUMBER错误!

解决方案 »

  1.   

    dbms_job.submit(job_no, 'null;aaa;' , l_dt_starttime, l_str_interval);中l_str_interval的问题。
      

  2.   

    l_str_interval    varchar2(200); 
      

  3.   

    不对,应该不是这里。SQL> desc dbms_job.submit
    Parameter Type           Mode Default? 
    --------- -------------- ---- -------- 
    JOB       BINARY_INTEGER OUT           
    WHAT      VARCHAR2       IN            
    NEXT_DATE DATE           IN   Y        
    INTERVAL  VARCHAR2       IN   Y        
    NO_PARSE  BOOLEAN        IN   Y        
    INSTANCE  BINARY_INTEGER IN   Y        
    FORCE     BOOLEAN        IN   Y 
    喝晕了,迷糊ing。
      

  4.   

      declare
        job_no            number;           --jobid
        l_str_interval    varchar2(200);    --interval
        l_dt_starttime    date;             --when
    begin     l_dt_starttime := to_date(to_char(add_months(trunc(sysdate), 1), 'yyyymm')||'01000000', 'yyyy-mm-dd hh24-mi-ss');
    --你的上面这句话等价于:trunc(sysdate+1)
         l_str_interval := to_char(add_months(trunc(sysdate), 1), 'yyyymm')||'01000000';
         --你的上面这句话等价于:to_char(trunc(sysdate+1),'yyyymmhh24miss')
    dbms_job.submit(job_no, 'null;aaa;' , l_dt_starttime, l_str_interval);
    --等价于dbms_job.submit(job_no, 'null;aaa;' , trunc(sysdate+1), ‘trunc(sysdate+1)’); 
         commit;
    end;
    楼主把问题复杂化了。
      

  5.   

    to_char(trunc(sysdate+1),'yyyymmhh24miss')
    更正如下:
    to_char(trunc(sysdate+1),'yyyymmddhh24miss')
      

  6.   

    我在家一个人闷酒,你以为呢?
    宅男一只,标准to来to去的,真的弄不灵清了。
      

  7.   

    呵呵。草!牛B!
    问你个问题,你的desc dbms_job.submit;是怎么查询出来其结构的呀?我怎么这样用就查不出来呀,要设置什么地方吗??请指教。如下:(我是以dba的账号登陆的)SQL> show user;
    USER 为 "SYS"
    SQL> desc dbms_job.submit;
    ERROR:
    ORA-04043: 对象 dbms_job.submit 不存在
      

  8.   

    试试
    dbms_job.submit(job_no=>job, what=>'null;aaa;' , next_date =>l_dt_starttime, interval  =>l_str_interval)