sql >> Database teknologi >  >> RDS >> Oracle

Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB Eksempel

Kravet er at oprette et job i Oracle til at køre dagligt kl. 3:00 AM og udføre en lagret procedure for at udføre en bestemt opgave. For eksempel er navnet på den lagrede procedure PROC_DAILY_UPDATES .

For at opnå dette bruger følgende eksempel Oracles DBMS_SCHEDULER.CREATE_JOB procedure:

1. Opret et job i Oracle ved hjælp af 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 oprettet ovenstående job, skal du aktivere det:

2. Aktiver jobbet ved hjælp af DBMS_SCHEDULER.ENABLE

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

Brug følgende forespørgsel for at bekræfte det oprettede job:

Select * from user_scheduler_jobs 
 where job_name = 'JOB_DAILY_UPDATES';

Fra ovenstående forespørgsel får du oplysninger som sidste startdato, næste køredato og jobaktiveringsstatus osv.

Brug følgende forespørgsel for at få jobudførelseshistorikken:

Select * from user_scheduler_job_run_details 
  where job_name = 'JOB_DAILY_UPDATES';

Du kan også bemærke, at i ovenstående DBMS_SCHEDULER.CREATE_JOB Eksempel på procedure, jeg brugte tidszonen America/New_York . Du kan få tidszonen for et bestemt land ved at bruge følgende forespørgsel:

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

Output

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 også:

  • Hvordan planlægger man et job i Oracle SQL Developer?
  • Lær, hvordan du planlægger opgaver/job med Cron (crontab) i Linux
  • Få aktuel lokaltid for ethvert land i PL/SQL
  1. Fremmednøgle til et af mange borde?

  2. SQL Server Express vs Express localdb

  3. Alternativ til at bruge LIMIT søgeord i en underforespørgsel i MYSQL

  4. ORA-28040:Ingen matchende godkendelsesprotokol undtagelse