Essayez d'utiliser MERGE
, Vous pouvez remplacer la condition where pour obtenir les enregistrements datant de plus de 360 jours en fonction de votre logique. La condition ON doit être les colonnes de jointure correspondantes des deux tables.
Si le code vous convient, vous pouvez peut-être programmer une exécution hebdomadaire.
Je suggère également d'utiliser BULK COLLECT pour insérer des enregistrements, consultez ceci
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;
/