Thử sử dụng MERGE
, Bạn có thể thay thế điều kiện where để lấy các bản ghi cũ hơn 360 ngày dựa trên logic của bạn. Điều kiện BẬT phải là các cột kết hợp phù hợp của hai bảng.
Nếu mã ổn, có lẽ bạn có thể lên lịch chạy hàng tuần.
Tôi cũng khuyên bạn nên sử dụng BULK COLLECT để chèn các bản ghi, hãy xem cái này
CREATE OR REPLACE PROCEDURE ARCHIVE_DATA
AS
BEGIN
MERGE
INTO Schema2.table trg
USING (
SELECT
column1
, column2
, column3
FROM
Schema1.table
WHERE
col_date >= 360
)
src
ON
(
trg.column1 = src.column1
)
WHEN NOT MATCHED THEN
INSERT
(
column1
, column2
, column3
)
VALUES
(
src.column1
, src.column2
, src.column3
)
;
COMMIT;
END;
/