Опитайте да използвате MERGE
, Можете да замените условието where, за да получите записите, които са по-стари от 360 дни въз основа на вашата логика. Условието ON трябва да бъде съвпадащите колони за свързване на двете таблици.
Ако кодът е наред, може би можете да планирате изпълнение всяка седмица.
Предлагам също да използвате BULK COLLECT за вмъкване на записи, погледнете това
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;
/