Oracle的Job创建及使用


1、创建Job

1.1、查询当前用户是否有创建Job权限

--查询是否有Job权限
select * from session_privs where PRIVILEGE like '%JOB%';
--授予当前用户创建Job权限
GRANT create any job to 用户名;

1.2、创建Job

创建测试表

create table demo (demo_time date);

创建job

-- 使用DBMS_SCHEDULER创建JOB
BEGIN
	sys.dbms_scheduler.create_job (
        --job名称
		job_name => 'QUERY_DUAL',
        --job类型 
		job_type => 'PLSQL_BLOCK',
        -- 存储过程名
		job_action => 'begin
  			insert into demo values (SYSDATE);
  		end;',
        -- 开始执行时间
		start_date => SYSDATE,
        --下次执行时间:每天15点30、35 执行
		repeat_interval => 'Freq=Daily;Interval=1;ByHour=15;ByMinute=30,35;BySecond=00',
		end_date => TO_DATE (NULL),
		job_class => 'DEFAULT_JOB_CLASS',
		enabled => TRUE,
		-- job禁用后是否自动删除
		auto_drop => FALSE,
		comments => '查询当前时间'
	) ;
END ;
/

-- 启用job
BEGIN
	dbms_scheduler. ENABLE (
		'QUERY_DUAL'
	) ;
END ;
/

2、使用Job

-- 手动运行job
begin 
dbms_scheduler.run_job('QUERY_DUAL');
end;
/
-- 手动启动job
begin
dbms_scheduler.enable('QUERY_DUAL');
end;
/
-- 禁用job
begin
dbms_scheduler.disable('QUERY_DUAL');
end;
/
-- 删除job
begin
dbms_scheduler.drop_job('QUERY_DUAL');
end;

3、查看Job

-- 查看job信息
select * from user_scheduler_jobs;
-- 查看job日志
SELECT * from user_scheduler_job_log where job_name = 'QUERY_DUAL';
--查看job运行日志
SELECT * from user_scheduler_job_run_details;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM