Tente usar
MERGE
, você pode substituir a condição where para obter os registros com mais de 360 dias com base em sua lógica. A condição ON deve ser as colunas de junção correspondentes das duas tabelas. Se o código estiver bom, talvez você possa agendar para ser executado toda semana.
Também sugiro usar BULK COLLECT para inserir registros, dê uma olhada em isto
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;
/