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