Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle PL/SQL:Пример DBMS_SCHEDULER.CREATE_JOB

Изискването е да създадете работа в 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
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи GROUP BY?

  2. Промяна на първичния ключ

  3. ORA-01843 не е валиден месец- Сравняване на дати

  4. Опресняване / Актуализиране на екран на формуляр в Oracle D2k Forms 6i

  5. Разлика между класовете драйвери на Oracle jdbc?