Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie trenne ich eine Partition von einer Tabelle und hänge sie an eine andere in Oracle an?

alter table exchange partition 

ist die Antwort. Dieser Befehl tauscht das Segment einer Partition mit dem Segment einer Tabelle aus. Es ist mit Lichtgeschwindigkeit, weil es nur einige Referenzaustausche durchführt. Sie brauchen also einige temporäre Tabellen, weil Sie sie AFAIK nicht direkt austauschen können.

Etwas wie:

create table tmp_table(same columns);
Add partition p_2011 in table ARCH_TABLE;

ALTER TABLE CURR_TABLE EXCHANGE PARTITION P_2011 WITH TABLE tmp_table;
ALTER TABLE ARCH_TABLE EXCHANGE PARTITION P_2011 WITH TABLE tmp_table;

Bitte testen Sie Ihren Code vor der Ausführung.