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

Jatuhkan partisi terlama secara otomatis di oracle 11G

Saya tidak tahu ada utilitas atau fungsi Oracle untuk melakukan ini. Anda dapat menemukan informasi yang Anda butuhkan untuk menulis program Anda sendiri untuk melakukannya di tampilan DBA_TAB_PARTITIONS atau ALL_TAB_PARTITIONS, mirip dengan berikut ini:

SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
  FROM SYS.DBA_TAB_PARTITIONS
  WHERE TABLE_OWNER = strSchema AND
        TABLE_NAME = strTable

di mana strSchema dan strTable adalah skema dan tabel yang Anda minati. HIGH_VALUE adalah bidang PANJANG yang berisi kode untuk panggilan ke fungsi TO_DATE (dengan asumsi tabel Anda dipartisi pada bidang tanggal); Anda harus menetapkan HIGH_VALUE ke bidang LONG, lalu menetapkan LONG ke VARCHAR2 untuk mendapatkan nilai di suatu tempat yang dapat dimanipulasi, dengan cara yang mirip dengan:

lHigh_value     LONG;
strDate_clause  VARCHAR2(100);

lHigh_value := aRow.HIGH_VALUE;
strDate_clause := lHigh_value;

Kemudian Anda hanya perlu mengekstrak bidang yang sesuai dari klausa DATE untuk menentukan partisi mana yang perlu Anda hapus.

Bagikan dan nikmati.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Anda bisa menjalankan kueri yang sama beberapa kali menggunakan loop di PL/SQL?

  2. Apakah ini kemungkinan bug Oracle atau saya melewatkan sesuatu?

  3. Selisih Kumulatif

  4. TO_TIMESTAMP() Fungsi di Oracle

  5. Bagaimana cara menghitung minggu dalam setahun di Oracle menggunakan hari pertama non-standar dalam seminggu?