Bonjour,
J'ai besoin d'identifier dans une table partitionnée la partition dans laquelle devrait se trouver une valeur donnée.
J'ai bien trouvé la vue SYS.ALL_TAB_PARTITION et sa colonne HIGH_VALUE... mais je ne sais pas comment comparer mes valeurs avec le contenu de cette colonne.
Il faut préciser que le partitionnement s'effectue sur le contenu de deux colonnes de la table !
Voici la définition (réduite) de la table qui m'occupe :
Je n'ai pas la main sur la création des partitions et il n'y a aucune règle logique permettant de lier le nom de la partition à la date (il pourrait y avoir plusieurs mois dans une partition, on n'est pas sûr de la date associée à la première partition, ...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE TABLE TB_HISTO ( ID_PERSONNE NUMBER(35,0) NOT NULL , ID_ART NUMBER(15,0) NOT NULL , CD_ANNEE NUMBER(4,0) NOT NULL , CD_MOIS NUMBER(2,0) NOT NULL ) TABLESPACE USERS PARTITION BY RANGE ( CD_ANNEE , CD_MOIS ) ( PARTITION PR_HISTO_M1 VALUES LESS THAN (2010, 2) , PARTITION PR_HISTO_M2 VALUES LESS THAN (2010, 3) )
De plus, une partition peut-être vide donc je ne peux pas me baser sur son contenu, mais uniquement sur sa définition.
Quelqu'un sait-il comment convertir le contenu de cette colonne HIGH_VALUE de type LONG dans un type utilisable pour une comparaison avec des valeurs numériques ou caractères ?
Merci d'avance
Partager