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

Automatycznie upuść najstarszą partycję w Oracle 11G

Nie znam żadnego narzędzia ani funkcji wyroczni, która mogłaby to zrobić. Informacje potrzebne do napisania własnego programu można znaleźć w widokach DBA_TAB_PARTITIONS lub ALL_TAB_PARTITIONS, podobnie jak poniżej:

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

gdzie strSchema i strTable to interesujący Cię schemat i tabela. HIGH_VALUE to pole LONG zawierające kod wywołania funkcji TO_DATE (zakładając, że Twoja tabela jest podzielona na partycje według pola daty); musisz przypisać HIGH_VALUE do pola LONG, a następnie przypisać LONG do VARCHAR2, aby uzyskać wartość w miejscu, w którym można nią manipulować, w sposób podobny do:

lHigh_value     LONG;
strDate_clause  VARCHAR2(100);

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

Następnie wystarczy wyodrębnić odpowiednie pola z klauzuli DATE, aby określić, które partycje należy usunąć.

Dziel się i ciesz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wymuś rozróżnianie wielkości liter w identyfikatorze w Oracle

  2. Jak przekonwertować XMLTYPE w VARCHAR w ORACLE?

  3. Problem z ładowaniem Oracle.DataAccess.Dll na komputerze x-64

  4. Nie ma więcej danych do odczytania z błędu gniazda

  5. Klonuj ORACLE_HOME