Oracle
 sql >> Base de données >  >> RDS >> Oracle

Procédure ou travail Oracle pour copier automatiquement les données d'un schéma à un autre en fonction de la chronologie

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