sql >> Database >  >> RDS >> Oracle

Oracle-procedure of taak om automatisch gegevens van het ene schema naar het andere te kopiëren op basis van tijdlijn

Probeer MERGE . te gebruiken , U kunt de waar-voorwaarde vervangen om de records op te halen die ouder zijn dan 360 dagen op basis van uw logica. De ON-voorwaarde moet de overeenkomende join-kolommen van de twee tabellen zijn.

Als de code in orde is, kun je misschien plannen om elke week te draaien.

Ik raad ook aan om BULK COLLECT te gebruiken om records in te voegen, kijk eens op dit

 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. Python+MySQLdb raar probleem

  2. Tekensets en sorteringen in MySQL begrijpen

  3. Panda's Schrijf tabel naar MySQL:kan niet terugdraaien

  4. Select en meerdere inserts als transactie uitvoeren met C Connector?