sql >> Databasteknik >  >> RDS >> Oracle

Oracle-procedur eller jobb för att automatiskt kopiera data från ett schema till ett annat baserat på tidslinjen

Testa att använda MERGE , Du kan ersätta where-villkoret för att få poster som är äldre än 360 dagar baserat på din logik. ON-villkoret ska vara de matchande sammanfogningskolumnerna i de två tabellerna.

Om koden är bra kanske du kan schemalägga att den körs varje vecka.

Jag föreslår också att du använder BULK COLLECT för att infoga poster, ta en titt på detta

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



  1. SQL ALLA &ALLA operatörer

  2. Hur ersätter man specifika värden i en Oracle-databaskolumn?

  3. Hur lagrar man formaterad text i MySQL-tabellen?

  4. Hur parallella planer startar – del 3