Изискването е да създадете работа в Oracle, която да се изпълнява ежедневно в 3:00 сутринта и изпълнете съхранена процедура за изпълнение на определена задача. Например името на съхранената процедура е PROC_DAILY_UPDATES
.
За да постигне това, следващият пример използва DBMS_SCHEDULER.CREATE_JOB
на Oracle процедура:
1. Създайте работа в Oracle с помощта на DBMS_SCHEDULER.CREATE_JOB
BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'JOB_DAILY_UPDATES', job_type => 'STORED_PROCEDURE', job_action => 'YOURSCHEMA.PROC_DAILY_UPDATES', start_date => '28-SEP-19 03.00.00 AM America/New_York', repeat_interval => 'FREQ=DAILY;INTERVAL=1', end_date => NULL, auto_drop => FALSE, job_class => 'SYS.DEFAULT_JOB_CLASS', comments => 'extract data'); END; /
След като създадете горното задание, активирайте го:
2. Активирайте заданието с помощта на DBMS_SCHEDULER.ENABLE
BEGIN DBMS_SCHEDULER.enable('JOB_DAILY_UPDATES'); END; /
За да потвърдите успешно създаденото задание, използвайте следната заявка:
Select * from user_scheduler_jobs where job_name = 'JOB_DAILY_UPDATES';
От горната заявка ще получите информация като последна начална дата, следваща дата на изпълнение и състояние на активиране на заданието и др.
За да получите хронологията на изпълнението на заданието, използвайте следната заявка:
Select * from user_scheduler_job_run_details where job_name = 'JOB_DAILY_UPDATES';
Можете също да забележите, че в горния DBMS_SCHEDULER.CREATE_JOB
Пример за процедура, използвах часовата зона America/New_York
. Можете да получите часовата зона на конкретна държава, като използвате следната заявка:
SELECT DISTINCT tzname, TZ_OFFSET (tzname) FROM V$TIMEZONE_NAMES ORDER BY tzname;
Изход
America/Mexico_City -05:00 America/Miquelon -02:00 America/Moncton -03:00 America/Monterrey -05:00 America/Montevideo -03:00 America/Montreal -04:00 America/Montserrat -04:00 America/Nassau -04:00 America/New_York -04:00 ...
Вижте също:
- Как да насрочите работа в Oracle SQL Developer?
- Научете как да планирате задачи/задачи с Cron (crontab) в Linux
- Вземете текущото местно време за всяка държава в PL/SQL