OracleDBMS_JOB:每隔特定时间执行特定任务
来源:优易学  2011-2-1 15:05:50   【优易学:中国教育考试门户网】   资料下载   IT书店

  三、查看相关job信息
  1、相关视图
  dba_jobs
  all_jobs
  user_jobs
  dba_jobs_running 包含正在运行job相关信息  
  2、查看相关信息  
  SQL>SELECT JOB, NEXT_DATE, NEXT_SEC, FAILURES, BROKEN FROM DBA_JOBS;  
  正在运行的JOB相关信息  
  SELECT SID, r.JOB, LOG_USER, r.THIS_DATE, r.THIS_SEC
  FROM DBA_JOBS_RUNNING r, DBA_JOBS j
  WHERE r.JOB = j.JOB;  
  JOB QUEUE LOCK相关信息  
  SELECT SID, TYPE, ID1, ID2 FROM V$LOCK WHERE TYPE = 'JQ';
  四、简单例子
  一个简单例子:   
  创建测试表
  SQL> create table TEST(a date);  
  表已创建。  
  创建一个自定义过程
  SQL> create or replace procedure MYPROC as
  2 begin
  3 insert into TEST values(sysdate);
  4 end;
  5 /  
  过程已创建。  
  创建JOB
  SQL> variable job1 number;
  SQL>
  SQL> begin
  2 dbms_job.submit(:job1,'MYPROC;',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 TEST;  
  时间
  -------------------
  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 过程已成功完成。

 

上一页  [1] [2] 

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训