sql >> Databasteknik >  >> RDS >> Oracle

Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB Exempel

Kravet är att skapa ett jobb i Oracle som ska köras dagligen kl. 03:00 och exekvera en lagrad procedur för att utföra en viss uppgift. Till exempel är det lagrade procedurens namn PROC_DAILY_UPDATES .

För att uppnå detta använder följande exempel Oracles DBMS_SCHEDULER.CREATE_JOB procedur:

1. Skapa ett jobb i Oracle med 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;
/

När du har skapat jobbet ovan, aktivera det:

2. Aktivera jobbet med DBMS_SCHEDULER.ENABLE

BEGIN 
    DBMS_SCHEDULER.enable('JOB_DAILY_UPDATES'); 
END;
/

Använd följande fråga för att bekräfta att jobbet skapats framgångsrikt:

Select * from user_scheduler_jobs 
 where job_name = 'JOB_DAILY_UPDATES';

Från ovanstående fråga får du information som senaste startdatum, nästa körningsdatum och status för jobbaktiveringar , etc.

För att få jobbexekveringshistoriken använd följande fråga:

Select * from user_scheduler_job_run_details 
  where job_name = 'JOB_DAILY_UPDATES';

Du kan också märka att i ovanstående DBMS_SCHEDULER.CREATE_JOB procedurexempel, jag använde tidszonen America/New_York . Du kan få tidszonen för ett specifikt land genom att använda följande fråga:

SELECT DISTINCT tzname, TZ_OFFSET (tzname)
 FROM V$TIMEZONE_NAMES
ORDER BY tzname;

Utdata

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
...

Se även:

  • Hur schemalägger man ett jobb i Oracle SQL Developer?
  • Lär dig hur du schemalägger uppgifter/jobb med Cron (crontab) i Linux
  • Få aktuell lokal tid i vilket land som helst i PL/SQL
  1. Hur man gör enkelt CRUD med PHP och MySQL enkelt

  2. JSON_LENGTH() – Returnera längden på ett JSON-dokument i MySQL

  3. WAMP/MySQL-fel är inte på korrekt språk

  4. Hur ser man index för en databas eller tabell i MySQL?