Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Procedura lub zadanie Oracle do automatycznego kopiowania danych z jednego schematu do drugiego na podstawie osi czasu

Spróbuj użyć MERGE , Warunek WHERE można zastąpić, aby uzyskać rekordy starsze niż 360 dni na podstawie logiki. Warunkiem ON powinny być pasujące kolumny łączenia dwóch tabel.

Jeśli kod jest w porządku, być może możesz zaplanować uruchamianie co tydzień.

Proponuję również używać BULK COLLECT do wstawiania rekordów, spójrz na to

 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UPPER() Funkcja w Oracle

  2. java.lang.ClassCastException:oracle.sql.TIMESTAMP nie może być rzutowany na java.sql.Timestamp

  3. Oracle — co się dzieje podczas odświeżania widoku „ODŚWIEŻ SIŁĘ NA ŻĄDANIE” za pomocą DBMS_MVIEW.REFRESH

  4. Manipulowanie kolekcjami

  5. usuń zduplikowane wiersze z Oracle