Bonjour à tous,
J'ai 2 questions :
1) vaut il mieux utiliser une table partitionnée ou un index partitionné?
2) problème sur une manip.
Voilà, j'ai suivit la procédure suivante :
Partitioning Existing Tables à l'adresse suivante
http://www.oracle-base.com/articles/...exes.php#Range
Cette procédure m'a permis de transformer une table non partitionnée avec des données existante en table partitionnée.
J'ai juste modifier le scipt suivanten
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE TABLE my_table_2 (id NUMBER, description VARCHAR2(50)) PARTITION BY RANGE (id) (PARTITION my_table_part VALUES LESS THAN (MAXVALUE));
et donc les alter exchange partition pour les 3 partitions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE my_table_2 (id NUMBER, description VARCHAR2(50)) PARTITION BY RANGE (id) (PARTITION my_table_part1 VALUES LESS THAN (10) tablespace "user", PARTITION my_table_part2 VALUES LESS THAN (20) tablespace "user", PARTITION my_table_part1 VALUES LESS THAN (MAXVALUE) tablespace "user");
avec creation d'une cle primaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ALTER TABLE my_table_2 EXCHANGE PARTITION my_table_part1 WITH TABLE my_table WITHOUT VALIDATION; ALTER TABLE my_table_2 EXCHANGE PARTITION my_table_part2 WITH TABLE my_table WITHOUT VALIDATION; ALTER TABLE my_table_2 EXCHANGE PARTITION my_table_part3 WITH TABLE my_table WITHOUT VALIDATION;
Et maintenant si je fait une requete avec une clause where sur id tel que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 alter table my_table add (constraint "code_PK" primary key (id);
et bien je n'ai aucun resultat, alors que je vous assure qu'il existe !!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part select * from my_table where id='1'![]()
Merci pour votre aide
Partager