Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Procedimento ou trabalho do Oracle para copiar dados automaticamente de um esquema para outro com base na linha do tempo


Tente usar MERGE , você pode substituir a condição where para obter os registros com mais de 360 ​​dias com base em sua lógica. A condição ON deve ser as colunas de junção correspondentes das duas tabelas.

Se o código estiver bom, talvez você possa agendar para ser executado toda semana.

Também sugiro usar BULK COLLECT para inserir registros, dê uma olhada em isto
 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;
/