begin
   dbms_scheduler.create_job
   (
      job_name        => 'myjob',
      job_type=>'PLSQL_BLOCK',
      job_action      => 'BEGIN  INSERT INTO test1 VALUES(''TEST123123''); END;',
     repeat_interval => 'FREQ=MINUTELY; INTERVAL=1',
      enabled         => true,
      comments        => 'this is my test'
   );
end;
/CREATE TABLE TEST1
(
  NAME  VARCHAR2(50 BYTE)
)创建的job怎么不能自动运行呢?在其他几台电脑上都可以自动运行的,唯独服务器上不行,权限也是足够的!哪位高人能帮帮忙啊?满分相送

解决方案 »

  1.   

    服务器上以什么身份创建的JOB?
    在TEST1前加用户看看
    用户名.test1
      

  2.   

    test用户,不过test用户有很多权限,包括dba

    BEGIN INSERT INTO test1 VALUES(''TEST123123''); END;
    改成
    BEGIN commit; END;也一样,说明完全是job的问题,跟代码块没有关系
      

  3.   

    一个简单例子:  创建测试表 
    SQL> create table t(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 删除JOB 
    SQL> begin 
      2  dbms_job.remove(:job1); 
      3  end; 
      4  / PL/SQL 过程已成功完成。