Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

JOB có thể được tạo động bên trong một trình kích hoạt không?

Gọi DBMS_SCHEDULER.CREATE_JOB cam kết ngầm để bạn không thể tạo DBMS_SCHEDULER công việc trong một trình kích hoạt. Đây là một trong những tình huống vẫn kêu gọi sử dụng DBMS_JOB cũ gói kể từ DBMS_JOB.SUBMIT không cam kết ngầm.

Trình kích hoạt này sẽ tạo công việc bạn muốn bằng cách sử dụng DBMS_JOB gói thay vì 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. Giới thiệu về phần tử định dạng V trong Oracle

  2. Oracle:Sử dụng truy vấn con trong trình kích hoạt

  3. Tìm kiếm tất cả các trường trong tất cả các bảng để có giá trị cụ thể (Oracle)

  4. Làm thế nào để có được hồ sơ nhân viên mới nhất trong oracle?

  5. cách sử dụng dbms_scheduler để chạy công việc sau mỗi 30 phút