job管理

-- 创建 测试表 tbl_date01(tdate)
create table tbl_date01(tdate date);
commit;

-- 创建一个过程 pro_tdate01
create or replace procedure pro_tdate01 as
begin
  insert into tbl_date01 values(sysdate);
  commit;
end;

-- 创建JOB
-- variable 用于SQL/plus中创建全局变量
variable jobtdate01 number;      -- 任务号码
begin
  dbms_job.submit(
    :jobtdate01,                 -- 产生任务号码
    'pro_tdate01;',              -- pro_tdate01过程
    sysdate,                     -- 运行时间
    'sysdate+60/(24*60*60)');    -- 每1分钟点执行过程
 -- 'trunc(sysdate,'D')+25/24'); -- //每天凌晨1点执行过程
end;

-- 运行JOB jobtdate01
begin
  dbms_job.run(:jobtdate01);
end;

-- 查看job任务号码
print jobtdate01;         -- 这时 jobtdate01 输出值 21

-- 停止job作业 任务8
exec dbms_job.broken(21,true)

-- 启动job作业 任务8
exec dbms_job.broken(21,false)

-- 查询 tbl_date01 表数据
select to_char(tdate,'yyyy/mm/dd hh24:mi:ss') 时间 from tbl_date01 ;

-- 删除JOB
begin
   dbms_job.remove(:jobtdate01); 
-- dbms_job.remove(21);   -- 21是job任务号码 
end;

-- 显示当前访问Job进程数
show parameter job_queue_processes

-- 更改同时运行的Job进程数
alter system set job_queue_processes=20 scope=spfile;

--查询是否JOB还在Running
select * from dba_jobs_running

-- 查看当前时间
select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') 当前时间 from dual;

猜你喜欢

转载自blog.csdn.net/cly_apple/article/details/4744596
job