现在有两个存储过程p_test1,p_test2
我现在要在每天凌晨1:00执行他们
怎么写个定时的任务

解决方案 »

  1.   

    'TRUNC(SYSDATE + 1) + (1*60)/(24*60)' 
      

  2.   

    'TRUNC(SYSDATE + 1) + (1*60)/(24*60)' 
      

  3.   

    汗,基础语法,,看书理解下酒明白了,遇到问题再来CSDN吧,
      

  4.   


    --上面兄弟的时间设置是对的,提交job就可以了
    DECLARE
      v_jobno NUMBER;
    BEGIN
      sys.dbms_job.submit(job => v_jobno,
      what => ' begin p_test1; p_test2; end;',   --定时执行你的两个过程
      next_date => to_date('2010-12-01 01:00:00','yyyy-mm-dd hh24:mi:ss'),  --第一次执行时间
      interval => 'trunc(sysdate+1)+1/24') ;  --每天凌晨1点
    END;
    /
      

  5.   

    declare
    jobno number;
    begin
    dbms_job.submit(jobno,'begin p_test1;p_test2; end;',sysdate,'trunc(sysdate+1)+1/24'));
    commit;
    end;
      

  6.   


    Error at line 1
    ORA-06550: 第 1 行, 第 152 列: 
    PLS-00103: 出现符号 "END"
    ORA-06512: 在 "SYS.DBMS_JOB", line 79
    ORA-06512: 在 "SYS.DBMS_JOB", line 136
    ORA-06512: 在 line 4
      

  7.   

    DECLARE
      v_t_por_job NUMBER;
    BEGIN
      sys.dbms_job.submit(job => v_t_por_job,
      what => 'p_count_click_services_list;p_count_click_column_list;end;',   --定时执行你的两个过程
      next_date => to_date('2010-12-01 01:00:00','yyyy-mm-dd hh24:mi:ss'),  --第一次执行时间
      interval => 'trunc(sysdate+1)+1/24') ;  --每天凌晨1点
    END;end去掉只执行前面的一个,后面的不执行。
      

  8.   

    DECLARE
      v_t_por_job NUMBER;
    BEGIN
      sys.dbms_job.submit(job => v_t_por_job,
      what => 'begin p_count_click_services_list;p_count_click_column_list;end;', --定时执行你的两个过程
      next_date => to_date('2010-12-01 01:00:00','yyyy-mm-dd hh24:mi:ss'), --第一次执行时间
      interval => 'trunc(sysdate+1)+1/24') ; --每天凌晨1点
    END;DECLARE
      v_t_por_job NUMBER;
    BEGIN
      sys.dbms_job.submit(job => v_t_por_job,
      what => 'p_count_click_services_list;p_count_click_column_list;', --定时执行你的两个过程
      next_date => to_date('2010-12-01 01:00:00','yyyy-mm-dd hh24:mi:ss'), --第一次执行时间
      interval => 'trunc(sysdate+1)+1/24') ; --每天凌晨1点
    END;
      

  9.   


    我已经说了,end去掉
    执行的时候只之前面的第一个,第二个没有被创建。
      

  10.   

    DECLARE
      v_t_por_job NUMBER;
    BEGIN
      sys.dbms_job.submit(job => v_t_por_job,
      what => 'begin p_count_click_services_list;p_count_click_column_list;end;', --定时执行你的两个过程
      next_date => to_date('2010-12-01 01:00:00','yyyy-mm-dd hh24:mi:ss'), --第一次执行时间
      interval => 'trunc(sysdate+1)+1/24') ; --每天凌晨1点
    END;
    ---这个或者你把其中一个放到另一个过程里面执行
      

  11.   


    SQL> create table t_job1(id number,name varchar2(10))
      2  /表已创建。SQL> create table t_job2(id number,name varchar2(10))
      2  /表已创建。SQL> create or replace procedure p_tjob1
      2  as
      3  begin
      4  for i in 1..5 loop
      5  insert into t_job1 values(i,i||'scott');
      6  end loop;
      7  end;
      8  /过程已创建。SQL> edi
    已写入 file afiedt.buf  1  create or replace procedure p_tjob2
      2  as
      3  begin
      4  for i in 1..5 loop
      5  insert into t_job2 values(i,i||'sys');
      6  end loop;
      7* end;
    SQL> /过程已创建。SQL> declare
      2  jobno number;
      3  begin
      4  dbms_job.submit(jobno,'begin p_tjob1;p_tjob2; end;',sysdate,'trunc(sysdate+1)+1/24');
      5  commit;
      6  dbms_output.put_line(jobno);
      7  end;
      8  /
    61PL/SQL 过程已成功完成。SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'
      2  /会话已更改。SQL> col what format a50
    SQL> set linesize 150
    SQL> select last_date,next_date,what from user_jobs  where job=61
      2  /LAST_DATE           NEXT_DATE           WHAT
    ------------------- ------------------- --------------------------------------------------
    2010-11-30 13:31:37 2010-12-01 01:00:00 begin p_tjob1;p_tjob2; end;SQL> select * from t_job1
      2  /        ID NAME
    ---------- ----------
             1 1scott
             2 2scott
             3 3scott
             4 4scott
             5 5scottSQL> select * from t_job2
      2  /        ID NAME
    ---------- ----------
             1 1sys
             2 2sys
             3 3sys
             4 4sys
             5 5sys
      

  12.   

    DECLARE
       NUMBER;
    BEGIN
      sys.dbms_job.submit(job => v_t_por_job,
      what => 'p_count_click_services_list;p_count_click_column_list;', --定时执行你的两个过程
      next_date => to_date('2010-12-01 01:00:00','yyyy-mm-dd hh24:mi:ss'), --第一次执行时间
      interval => 'trunc(sysdate+1)+1/24') ; --每天凌晨1点
    END;这为什么报错啊?
    怎么在你的基础上时间改成每天凌晨1点执行啊?
      

  13.   

    为什么报这样的错?
    ORA-06550: 第 1 行, 第 152 列: 
    PLS-00103: 出现符号 "END"
    ORA-06512: 在 "SYS.DBMS_JOB", line 79
    ORA-06512: 在 "SYS.DBMS_JOB", line 136
    ORA-06512: 在 line 4
      

  14.   

    ---你看  操作问题自己再去仔细检查
    SQL> edi
    已写入 file afiedt.buf  1  declare
      2  jobno number;
      3  begin
      4  dbms_job.submit(jobno,'p_tjob1;p_tjob2;',sysdate,'trunc(sysdate+1)+1/24');
      5  commit;
      6  dbms_output.put_line(jobno);
      7* end;
    SQL> /
    62PL/SQL 过程已成功完成。SQL> select last_date,next_date,what from user_jobs  where job=62
      2  /LAST_DATE           NEXT_DATE           WHAT
    ------------------- ------------------- -----------------------------------------
    2010-11-30 13:43:47 2010-12-01 01:00:00 p_tjob1;p_tjob2;SQL> select * from t_job1
      2  /        ID NAME
    ---------- ----------
             1 1scott
             2 2scott
             3 3scott
             4 4scott
             5 5scott
             1 1scott
             2 2scott
             3 3scott
             4 4scott
             5 5scott已选择10行。SQL> select * from t_job2
      2  /        ID NAME
    ---------- ----------
             1 1sys
             2 2sys
             3 3sys
             4 4sys
             5 5sys
             1 1sys
             2 2sys
             3 3sys
             4 4sys
             5 5sys已选择10行。
      

  15.   


    我想找到问题出在哪
    执行一个没事,执行两为什么出错?
    ORA-06550: 第 1 行, 第 152 列: 
    PLS-00103: 出现符号 "END"
    ORA-06512: 在 "SYS.DBMS_JOB", line 79
    ORA-06512: 在 "SYS.DBMS_JOB", line 136
    ORA-06512: 在 line 4