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

Cách tốt nhất để chạy các truy vấn Oracle định kỳ

  • Đối với các công việc đang chạy (và các truy vấn) DBMS_SCHEDULER là công cụ để lựa chọn. Vì vậy, nếu bạn muốn cập nhật trạng thái trong bảng dựa trên kết quả truy vấn của bạn, hãy sử dụng DBMS_SCHEDULER.

Ví dụ:bạn có thể lên lịch một công việc thực hiện cập nhật sau:

update x
   set status = (CASE 
                   WHEN sysdate < x.DUE_DATE - y.WARN THEN
                     'Ok'
                   WHEN sysdate >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICAL THEN
                     'Warn'
                   WHEN sysdate >= x.DUE_DATE - y.CRITICAL and sysdate <= x.DUE_DATE THEN
                     'Critical'
                   WHEN sysdate > x.DUE_DATE THEN
                     'Overdue'
                 END)
;

Để tạo công việc được lên lịch hàng ngày lúc 00:00:

BEGIN
    dbms_scheduler.create_job(job_name => 'Status Updater',
                              job_type => 'PLSQL_BLOCK',
                              job_action => '
                                             BEGIN 
                                              update x
                                                set status = (CASE 
                                                                WHEN sysdate < x.DUE_DATE - y.WARN THEN
                                                                  ''Ok''
                                                                WHEN sysdate >= x.DUE_DATE - y.WARN and today < x.DUE_DATE - y.CRITICAL THEN
                                                                  ''Warn''
                                                                WHEN sysdate >= x.DUE_DATE - y.CRITICAL and sysdate <= x.DUE_DATE THEN
                                                                  ''Critical''
                                                                WHEN sysdate > x.DUE_DATE THEN
                                                                  ''Overdue''
                                                              END)
                                                 ;
                                              END;',
                              start_date => systimestamp,
                              repeat_interval => 'FREQ=DAILY;INTERVAL=1;BYHOUR=0;BYMINUTE=0;',
                              enabled => TRUE);
END;
/
  • Nếu bạn cần chuẩn bị báo cáo , lập lịch báo cáo trong công cụ báo cáo hoặc sử dụng Chế độ xem cụ thể hóa để lưu trữ tập hợp kết quả.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn con trong oracle là gì

  2. Groovy SQL Oracle Array Chức năng / Thủ tục Đăng ký Tham số

  3. Kết nối với Cơ sở dữ liệu Oracle 12c từ Phiên bản Cộng đồng Tích hợp Dữ liệu Pentaho (Kettle)

  4. Thêm tham số ngày vào truy vấn oracle

  5. Phương ngữ ngủ đông cho Cơ sở dữ liệu Oracle 11g?