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…

 

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA - https://www.youtube.com/@DuoDBA) tác giả của blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn muốn có người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
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