解决方案 »

  1.   

    这个搜一下,动动手应该很容易搞定的
    来个最简单的jobdeclare
    jobno integer;
    begin
    dbms_job.submit(jobno,'begin insert into note values(1,''test''); end;',sysdate,'sysdate+5/1440');
    dbms_output.put_line(jobno);
    commit;
    end;
    /主要是一个dbms_job.submit过程,这个过程包含的几个参数:
    job:这是个输出参数,要放一个变量来,存储过程会将创建的job的job号赋给它
    what:要执行的存储过程。如果是sql语句,将它写到存储过程里,注意commit
    next_date:第一次执行的时间。sysdate表示现在开始执行
    interval :'sysdate+5/1440'代表每隔5分钟执行一次
      

  2.   

    job 运行一个存储过程怎么写?
      

  3.   


    'begin insert into note values(1,''test''); end;
    ->存储过程名字
      

  4.   


    'begin insert into note values(1,''test''); end;
    ->存储过程名字
      

  5.   


    'begin insert into note values(1,''test''); end;
    ->存储过程名字
    create or replace PRocedure pro_test
    AS
    carinfo_id number;
    BEGIN
    select s_CarInfoID.nextval into carinfo_id
    from dual;
    insert into test(test.carno,test.carinfoid) values(carinfo_id,'123');
    commit;
    end pro_test;
      这个就是我存储过程,前面还报无效?
      

  6.   

    select status from user_objects where object_name='PRO_TEST';
    看看存储过程的状态如果是invalid,用命令窗口重新创建,show error来查看错误
      

  7.   

    存储过程是invalid,我在命令窗口运行报下面的错 
    declare
    jobno integer;
    begin
    dbms_job.submit(jobno,'pro_test;',sysdate,'sysdate+5/1440');
    commit;
    end;
     
    ORA-06550: 第 1 行, 第 93 列: 
    PLS-00905: 对象 NCPJGJC.PRO_TEST 无效
    ORA-06550: 第 1 行, 第 93 列: 
    PL/SQL: Statement ignored
    ORA-06512: 在 "SYS.DBMS_JOB", line 79
    ORA-06512: 在 "SYS.DBMS_JOB", line 136
    ORA-06512: 在 line 5
     
      

  8.   

    Warning: Procedure created with compilation errors
      

  9.   

    建好了,问下job有个数限制?SQL> procedure successfully completed;
     
    procedure successfully completed
     
    ORA-00900: 无效 SQL 语句
    SQL> show parameter job_queue_processes;
     
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    job_queue_processes                  integer     10
     
    这2句语句是干嘛的 。不太懂
      

  10.   

    那个参数不是指job个数,而是同时执行的并发进程数
    job个数应该是没有限制的
      

  11.   

    interval :'trunc(sysdate)+47/24'
      

  12.   

    declare
    jobno integer; 
    jobno 可以重复?
      

  13.   

    你看输出的jobno值,是不一样的
      

  14.   

    好像我用这个jobno建了好几个
     declare
    jobno integer;
    begin
    dbms_job.submit(jobno,'pro_pfscdlmonth;',sysdate,'sysdate+5/1440');
    commit;
    end; 就第一个建的在操作,其他的job 都没运行。
    select name,value from v$parameter where name ='job_queue_processes'; value是10
    你刚刚说输出jobno怎么输出看?
      

  15.   

    dbms_output.put_line(jobno);
    建议你先理解一下存储过程的基本用法,动手试试。有疑问的可以自己先搜搜看,自主学习能力很重要,有一点问一点效率很低
      

  16.   

    为什么我设置时每天下午5点运行,job到1点多才运行?
      

  17.   

    那个不会是第一次运行的时间吧
    看看failures字段的值