Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle-Prozedur oder -Job zum automatischen Kopieren von Daten von einem Schema in ein anderes, basierend auf der Zeitachse

Versuchen Sie es mit MERGE , können Sie die where-Bedingung ersetzen, um die Datensätze abzurufen, die älter als 360 Tage sind, basierend auf Ihrer Logik. ON-Bedingung sollten die übereinstimmenden Join-Spalten der beiden Tabellen sein.

Wenn der Code in Ordnung ist, können Sie vielleicht planen, dass er jede Woche ausgeführt wird.

Ich schlage auch vor, BULK COLLECT zum Einfügen von Datensätzen zu verwenden, werfen Sie einen Blick auf dies

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