variable job number;
begin 
    sys.dbms_job.submit(job   =>   :job1, 
                                            what   =>   'insert_in_ufgov; ', 
                                            next_date   =>   to_date( '15-11-2007   10:00:00 ',   'dd-mm-yyyy   hh24:mi:ss '),--执行时间 
                                            interval   =>   'sysdate+1/2');--隔多少天执行一次 
    commit; 
end; 上边根据网上某位大侠改编的,提示我第一行的时候出错 不知道什么原因。
大侠帮忙看看这样写对不对?

解决方案 »

  1.   

    你是在什么工具中执行的?上面这些需要在sqlplus中执行,或者是pl/sql developer的command window中执行。
      

  2.   

    你insert_in_ufgov是什么东西?贴出具体的错误信息
      

  3.   

    variable   job1   number; 
    begin   
            sys.dbms_job.submit(job       =>       :job1,   
                                                                                            what       =>       'insert_in_ufgov;   ',   
                                                                                            next_date       =>       to_date(   '15-11-2007       10:00:00   ',       'dd-mm-yyyy       hh24:mi:ss   '),--执行时间   
                                                                                            interval       =>       'sysdate+1/2 ');--隔多少天执行一次   
            commit;   
    end;   
      

  4.   

    2楼说的可能是对的,我在pl/sql中执行的,要是用sql窗口的话就会提示错误,要是用命令窗口的话就不提示
    但是我怎么确定我这个JOB就是已经建立好了呢?在那查看 我网上查到用这条语句可以差 SELECT JOB, NEXT_DATE, NEXT_SEC, FAILURES, BROKEN FROM DBA_JOBS;
    但是查找出来的信息是空的,不知道那里的问题另回复三楼 insert_in_ufgov 是一个存储
      

  5.   

    我今天又试了一次 还是无法创建JOB 用的是网上查找的例子
    -----------------------------------分割线---------------------------
      一个简单例子:  创建测试表  SQL> create table a(a date);  表已创建。  创建一个自定义过程  SQL> create or replace procedure test as  2 begin  3 insert into a values(sysdate);  4 end;  5 /  过程已创建。  创建JOB  SQL> variable job1 number;  SQL>  SQL> begin  2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次  3 end;  4 /  PL/SQL 过程已成功完成。  运行JOB  SQL> begin  2 dbms_job.run(:job1);  3 end;  4 /  PL/SQL 过程已成功完成。  SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;  时间  -------------------  2001/01/07 23:51:21  2001/01/07 23:52:22  2001/01/07 23:53:24-------------------------------分割线-----------------------------------但我最后执行
    select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a; 
    的时候查询出来的内容是空的
    不知道什么原因,应该是JOB没有创建,大侠支个招
      

  6.   

    我今天又试了一次 还是无法创建JOB 用的是网上查找的例子
    -----------------------------------分割线---------------------------
      一个简单例子:  创建测试表  SQL> create table a(a date);  表已创建。  创建一个自定义过程  SQL> create or replace procedure test as  2 begin  3 insert into a values(sysdate);  4 end;  5 /  过程已创建。  创建JOB  SQL> variable job1 number;  SQL>  SQL> begin  2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次  3 end;  4 /  PL/SQL 过程已成功完成。  运行JOB  SQL> begin  2 dbms_job.run(:job1);  3 end;  4 /  PL/SQL 过程已成功完成。  SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;  时间  -------------------  2001/01/07 23:51:21  2001/01/07 23:52:22  2001/01/07 23:53:24-------------------------------分割线-----------------------------------但我最后执行
    select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a; 
    的时候查询出来的内容是空的
    不知道什么原因,应该是JOB没有创建,大侠支个招
      

  7.   

    看看oracle的参数job_queue_processes,如果是0就没有队列,job不会被执行。
      

  8.   

    alter system set job_queue_processes=100我用这个语句设置过了 还是不行