sql >> Database teknologi >  >> RDS >> Oracle

Slip den ældste partition automatisk i Oracle 11G

Jeg kender ikke noget orakelværktøj eller -funktion til at gøre dette. Du kan finde de oplysninger, du skal bruge for at skrive dit eget program for at gøre dette, i visningerne DBA_TAB_PARTITIONS eller ALL_TAB_PARTITIONS, svarende til følgende:

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

hvor strSchema og strTable er det skema og den tabel, du er interesseret i. HIGH_VALUE er et LONG-felt, som indeholder koden for et kald til TO_DATE-funktionen (forudsat at din tabel er opdelt i et datofelt); du skal tildele HIGH_VALUE til et LONG-felt og derefter tildele LONG til en VARCHAR2 for at få værdien et sted, hvor den kan manipuleres, på en måde, der ligner:

lHigh_value     LONG;
strDate_clause  VARCHAR2(100);

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

Så skal du blot udtrække de relevante felter fra DATE-klausulen for at bestemme, hvilke partitioner du skal slette.

Del og nyd.



  1. få værdien af ​​en ekstra pivottabelsøjle laravel

  2. Tilføj 1 til et felt

  3. I ''mysql'' Manager af pid-fil afsluttes uden opdateringsfil

  4. Kaldning af transform() uden SRID-sæt understøttes ikke