Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Najlepszy sposób na okresowe uruchamianie zapytań Oracle

  • Dla wykonywania zadań (i zapytań) DBMS_SCHEDULER jest narzędziem do wyboru. Więc jeśli chcesz zaktualizować stan w tabeli na podstawie wyników zapytania użyj DBMS_SCHEDULER.

Na przykład możesz zaplanować pracę wykonującą następującą aktualizację:

update x
   set status = (CASE 
                   WHEN sysdate < x.DUE_DATE - y.WARN THEN
                     'Ok'
                   WHEN sysdate >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICAL THEN
                     'Warn'
                   WHEN sysdate >= x.DUE_DATE - y.CRITICAL and sysdate <= x.DUE_DATE THEN
                     'Critical'
                   WHEN sysdate > x.DUE_DATE THEN
                     'Overdue'
                 END)
;

Aby utworzyć zadanie zaplanowane codziennie na 00:00:

BEGIN
    dbms_scheduler.create_job(job_name => 'Status Updater',
                              job_type => 'PLSQL_BLOCK',
                              job_action => '
                                             BEGIN 
                                              update x
                                                set status = (CASE 
                                                                WHEN sysdate < x.DUE_DATE - y.WARN THEN
                                                                  ''Ok''
                                                                WHEN sysdate >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICAL THEN
                                                                  ''Warn''
                                                                WHEN sysdate >= x.DUE_DATE - y.CRITICAL and sysdate <= x.DUE_DATE THEN
                                                                  ''Critical''
                                                                WHEN sysdate > x.DUE_DATE THEN
                                                                  ''Overdue''
                                                              END)
                                                 ;
                                              END;',
                              start_date => systimestamp,
                              repeat_interval => 'FREQ=DAILY;INTERVAL=1;BYHOUR=0;BYMINUTE=0;',
                              enabled => TRUE);
END;
/
  • Jeśli musisz przygotować raport , zaplanuj raport w narzędziu do raportowania lub użyj zmaterializowanego widoku do przechowywania zestawu wyników.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać Distributed AD, aby skrócić czas instalowania poprawek w Oracle EBS?

  2. Funkcja ASIN() w Oracle

  3. Oracle:W PRZYPADKU AKTUALIZACJI ZDUPLIKOWANEGO KLUCZA

  4. Oracle wybierz najnowszy rekord daty

  5. Wywoływanie notacji dla podprogramów PL/SQL w bazie danych Oracle