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 :
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)
    )
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, ...).
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