Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thủ tục hoặc công việc Oracle để sao chép dữ liệu tự động từ một lược đồ này sang một lược đồ khác dựa trên dòng thời gian

Thử sử dụng MERGE , Bạn có thể thay thế điều kiện where để lấy các bản ghi cũ hơn 360 ngày dựa trên logic của bạn. Điều kiện BẬT phải là các cột kết hợp phù hợp của hai bảng.

Nếu mã ổn, có lẽ bạn có thể lên lịch chạy hàng tuần.

Tôi cũng khuyên bạn nên sử dụng BULK COLLECT để chèn các bản ghi, hãy xem cái này

 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. Hàm TO_DSINTERVAL () trong Oracle

  2. hai khóa ngoại cho cùng một kiểu dữ liệu số và tham chiếu nó đến hai bảng

  3. cx_Oracle không nhận dạng được vị trí cài đặt phần mềm Oracle để cài đặt trên Linux

  4. cách kết hợp hai giá trị khác nhau từ một bảng của một khách hàng thành một hàng

  5. Oracle.ManagedDataAccess với Oracle 8.1.7 DB