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

Може ли JOB да бъде създаден динамично в тригер?

Извикване на DBMS_SCHEDULER.CREATE_JOB имплицитно се ангажира, така че не можете да създадете DBMS_SCHEDULER работа в тригер. Това е една от ситуациите, които все още изискват използването на стария DBMS_JOB пакет от DBMS_JOB.SUBMIT не се ангажира имплицитно.

Този тригер трябва да създаде заданието, което искате, използвайки DBMS_JOB пакет, а не 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. Как да генерирам динамична поръчка по клауза в PL/SQL процедура?

  2. Oracle:импортиране на записи от разделен с разделители текстов файл в база данни с помощта на pl-sql

  3. Как да получите таблица като изходящ параметър в Oracle

  4. Изпълнете sql оператор чрез JDBC с CLOB обвързване

  5. java.sql.SQLException:IO изключение:Мрежовият адаптер не можа да установи връзката?