Oracle
 sql >> Database >  >> RDS >> Oracle

Procedura o lavoro Oracle per copiare automaticamente i dati da uno schema all'altro in base alla sequenza temporale

Prova a utilizzare MERGE , È possibile sostituire la condizione where per ottenere i record precedenti a 360 giorni in base alla logica. La condizione ON dovrebbe essere le colonne di join corrispondenti delle due tabelle.

Se il codice va bene, forse puoi programmare l'esecuzione ogni settimana.

Suggerisco anche di utilizzare BULK COLLECT per inserire i record, dai un'occhiata a questo

 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;
/