Prøv at bruge MERGE
, Du kan erstatte where-betingelsen for at få de poster, der er ældre end 360 dage baseret på din logik. ON-betingelsen skal være de matchende joinkolonner i de to tabeller.
Hvis koden er fin, kan du måske planlægge at køre hver uge.
Jeg foreslår også, at du bruger BULK COLLECT til at indsætte poster. Tag et kig på dette
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;
/