Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bisakah JOB dibuat secara dinamis di dalam pemicu?

Memanggil DBMS_SCHEDULER.CREATE_JOB berkomitmen secara implisit sehingga Anda tidak dapat membuat DBMS_SCHEDULER pekerjaan di pemicu. Ini adalah salah satu situasi yang masih memerlukan penggunaan DBMS_JOB yang lama paket sejak DBMS_JOB.SUBMIT tidak berkomitmen secara implisit.

Pemicu ini harus membuat pekerjaan yang Anda inginkan menggunakan DBMS_JOB paket daripada 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. Fungsi Java 6 berfungsi di baris perintah, tetapi tidak berfungsi di server Oracle (AES 256)

  2. Beberapa fungsi REPLACE di Oracle

  3. Oracle:Ekstrak Representasi Database Grafis

  4. Menggunakan COALESCE dengan benar dalam klausa WHERE

  5. Jenis tanggal tanpa waktu di Oracle