Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara menjatuhkan partisi dari tabel di beberapa skema?

Gunakan DBA_TAB_PARTITIONS atau ALL_TAB_PARTITIONS tampilan alih-alih USER_TAB_PARTITIONS . Dua tampilan sebelumnya berisi TABLE_OWNER (yaitu skema) kolom yang akan membantu Anda mencapai tujuan Anda.

Anda kemudian dapat membuat parameter prosedur Anda untuk mengambil nama pemilik dan tabel sebagai parameter:

PROCEDURE purge_ops_log_range_parts(pinOwner      IN VARCHAR2,
                                    pinTable_name IN VARCHAR2)
IS
BEGIN
  FOR partition_rec IN (SELECT partition_name
                              ,high_value
                          FROM DBA_TAB_PARTITIONS
                         WHERE TABLE_OWNER = pinOwner AND
                               table_name = pinTable_name)
  LOOP
     IF SYSDATE >= add_months(to_date(substr(partition_rec.high_value
                                            ,12
                                            ,19)
                                     ,'YYYY-MM-DD HH24:MI:SS')
                             ,6)
     THEN
        execute_immediate('ALTER TABLE ' || pinOwner || '.' ||
                             pinTable_name || ' DROP PARTITION ' ||
                             partition_rec.partition_name);
     END IF;
  END LOOP;
END purge_ops_log_range_parts;

Semoga berhasil.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyedia Oracle Entity Framework tidak menyimpan DateTime.Now dengan milidetik

  2. Bagaimana saya bisa mengganti tanda kurung menjadi tanda hubung dalam fungsi Oracle REGEXP_REPLACE?

  3. cara menulis kueri sql untuk memilih baris dengan nilai maksimal dalam satu kolom

  4. panggil fungsi Oracle yang melakukan penyisipan/pembaruan dari PHP?

  5. Adakah kerugian dari bendera bit di kolom basis data?