web-dev-qa-db-fra.com

Ajout de sous-partitions à une table partitionnée existante

Dans Oracle 11g, existe-t-il un moyen d'introduire des sous-partitions dans une table partitionnée existante?

Je n'arrive pas à trouver une combinaison de EXCHANGE et SPLIT partition qui fasse la bonne chose. SPLIT divisera une partition en plusieurs partitions, sans introduire de sous-partitions. Aucune suggestion?

J'ai trouvé un article existant sur le partitionnement d'une table non partitionnée existante en échangeant vers une table avec une partition puis en utilisant SPLIT, mais je ne peux pas comprendre le processus équivalent pour les sous-partitions.

5
wrschneider

Une nouvelle sous-partition peut être ajoutée à la table partitionnée existante à l'aide de la commande suivante:

ALTER TABLE PART_TEST
modify partition OCT19 
add subpartition OCT19AXCS 
values ('AXCS');
4
yogesh

Je pense que je l'ai compris mais c'est fastidieux, nécessitant deux tables temporaires et doit être fait une partition à la fois. Y a-t-il une meilleure façon?

Pour chaque partition dans la table d'origine (source)

  1. échange la partition vers une table temporaire non partitionnée (alter table source exchange partition X with table TEMP1)
  2. échange la table temporaire en une deuxième table temporaire, partitionnée par la même clé que les sous-partitions de la table cible, avec une seule partition par défaut (alter table TEMP2 exchange partition Y with table TEMP1)
  3. échange la table temporaire partitionnée en table cible (alter table target exchange partition X with table TEMP2)
  4. la table cible a maintenant la partition X avec la sous-partition Y - diviser la sous-partition Y en sous-partitions souhaitées (alter table target split subpartition Y ....)
1
wrschneider