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

Czy zadanie może być tworzone dynamicznie wewnątrz wyzwalacza?

Wywołanie DBMS_SCHEDULER.CREATE_JOB niejawnie zatwierdza, więc nie można utworzyć DBMS_SCHEDULER praca w spuście. Jest to jedna z sytuacji, które nadal wymagają użycia starego DBMS_JOB pakiet od DBMS_JOB.SUBMIT nie zobowiązuje się domyślnie.

Ten wyzwalacz powinien utworzyć zadanie, które chcesz za pomocą DBMS_JOB pakiet zamiast DBMS_SCHEDULER .

create or replace
TRIGGER AFT_INSERT_TMP_TBL
AFTER INSERT ON TMP_TBL
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE 

    V_SQL VARCHAR2(1000);
    A_NAME VARCHAR2(100);
    l_jobno NUMBER;
BEGIN
    A_NAME:='ANY_NAME';

    dbms_job.submit( l_jobno,
                     'BEGIN dbms_output.put_line( ''' || a_name || ''' ); END;',
                     sysdate + interval '2' minute,
                     'sysdate + interval ''2'' minute' );
     DBMS_OUTPUT.PUT_LINE('Job Number:'||l_jobno);

END AFT_INSERT_TMP_TBL;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy sprzężenie wewnętrzne jest tym samym, co equi-join?

  2. Audyt w Oracle

  3. Określanie dat Wielkanocy na dowolny rok w Oracle PLSQL

  4. Zmienna tabeli jest wypełniona tylko jedną wartością

  5. Zamiana wartości kolumn w Oracle