sql >> Database >  >> RDS >> Oracle

Kan een JOB dynamisch binnen een trigger worden aangemaakt?

Bellen DBMS_SCHEDULER.CREATE_JOB legt impliciet vast, zodat u geen DBMS_SCHEDULER . kunt maken baan in een trigger. Dit is een van de situaties die nog steeds vragen om het gebruik van de oude DBMS_JOB pakket sinds DBMS_JOB.SUBMIT verbindt zich niet impliciet.

Deze trigger moet de gewenste taak maken met behulp van de DBMS_JOB pakket in plaats van 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. Hoe kolommen samenvoegen in een Postgres SELECT?

  2. Vrije plaatsen vinden in een boekingssysteem

  3. SQL:Is het mogelijk om velden van het type INTERVAL te SOM()?

  4. PL/SQL, hoe ontsnappen aan een enkel aanhalingsteken in een string?