Kann ich die partition einer bereits vorhandenen Tabelle in oracle?
Ich habe eine Tabelle in meiner oradb, whitch hat bereits eine Menge von Zeilen.
Möchte ich diese partition-Tabelle Monat nicht neu zu erstellen. Also ich will nicht verlieren die Daten aus der Tabelle.
Möchte ich diese partition Typ:
PARTITION BY RANGE (date_column)
INTERVAL (NUMTOYMINTERVAL (1,'MONTH'))
(partition transaction_old values less than (to_date('01-01-2015','DD-MM-YYYY')));
Wie kann ich diese auf eine bereits bestehende Tabelle? Ich wollte die alter table Funktion, aber es funktioniert nicht:
alter table mytable
PARTITION BY RANGE (date_column)
INTERVAL (NUMTOYMINTERVAL (1,'MONTH'))
( partition transaction_old values less than (to_date('01-01-2015','DD-MM-YYYY') ));
Gibt es eine Lösung für mein problem?
- dbms_redefinition-Paket. Antwort hier
- nur eine Warnung, die Sie möglicherweise benötigen dba-privs zu execute dbms_redefinition. Sie sind nur für Datenbank-Benutzer mit connect,resource privs, wenn Sie ihn nicht benutzen kann (auch auf dem eigenen Tisch).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht direkt partition einer bereits vorhandenen nicht partitionierten Tabelle. Sie müssen zum erstellen eines interim-Tabelle/neue Tabelle, die je nach die folgenden Methoden zum partitionieren:
DBMS_REDEFINITION
EXCHANGE PARTITION
wahrscheinlich die einfachste, sicherste Weg ist die Verwendung von dbms_redefinition - es kopiert werden über die Zuschüsse, Indizes, Einschränkungen, alles.
Quelle