Auto insert data to table every 5 seconds Oracle Database

Thủ tục tự động insert data vào bảng trong Oracle database, sử dụng PROCEDURE và SCHEDULER

Để tạo thủ tục thêm dữ liệu vào bảng data_tab trong Oracle Database mỗi 5 giây, chúng ta cần làm những bước sau:

  1. Tạo bảng data_tab với trường id tự động tăng.
  2. Tạo thủ tục PL/SQL để thêm dữ liệu vào bảng.
  3. Tạo một job trong Oracle để chạy thủ tục mỗi 5 giây.

1. Tạo bảng data_tab

Chạy các câu lệnh SQL sau trong Oracle SQL*Plus hoặc SQL Developer để tạo bảng:

CREATE TABLE data_tab (
id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
content VARCHAR2(255),
date_time TIMESTAMP
);

word image 2937 1

2. Tạo thủ tục PL/SQL

Thủ tục này sẽ chèn dữ liệu vào bảng data_tab:

CREATE OR REPLACE PROCEDURE insert_data_tab IS
BEGIN
INSERT INTO data_tab (content, date_time)
VALUES ('datalinks.vn - duodb - duong nguyen '||to_char(SYSTIMESTAMP,'yyyy-mm-dd hh24:mi:ss'), SYSTIMESTAMP);
commit;
END;
/

3. Tạo job để chạy thủ tục mỗi 5 giây

Sử dụng DBMS_SCHEDULER để tạo một job tự động chạy thủ tục insert_data_tab mỗi 5 giây:

BEGIN
DBMS_SCHEDULER.create_job (
job_name => 'INSERT_DATA_TAB_JOB',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN insert_data_tab; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=SECONDLY; INTERVAL=5',
enabled => TRUE
);
END;
/

Kiểm tra job

Để kiểm tra job đang chạy hay không, bạn có thể dùng câu lệnh sau:

SELECT job_name, enabled, next_run_date, state
FROM dba_scheduler_jobs
WHERE job_name = 'INSERT_DATA_TAB_JOB';

word image 2937 2

TRUE: tức là đang chạy

Dừng job

Nếu bạn muốn dừng job, sử dụng câu lệnh sau:

BEGIN
DBMS_SCHEDULER.disable('INSERT_DATA_TAB_JOB');
END;
/

## Xoá Job khỏi database

BEGIN
DBMS_SCHEDULER.drop_job('INSERT_DATA_TAB_JOB');
END;
/

Chúng ta có thể dựa vào kịch bản trên để mô phỏng và tạo Partition table theo ngày, tháng…

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận