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;
posted @ 2023-06-01 15:01  快乐小狗呀  阅读(926)  评论(0)    收藏  举报