CARDINALITY |
Cardinalité |
|---|---|
| Oracle Database SQL | Oracle 12c Release 1 (12.1) ou supérieure |
Syntaxe
| cardinality(ColumnTable) |
Paramètres
| Nom | Description |
|---|---|
| ColumnTable | Ce paramètre permet d'indiquer la colonne dans la table imbriquée que vous souhaitez obtenir le cardinal. |
Description
Cette fonction permet de retourner le nombre d'élément d'une table.
Remarques
- Permet de connaître la taille d'une collection imbriquée : La fonction CARDINALITY retourne le nombre d'éléments contenus dans une table imbriquée ou une collection (comme un VARRAY ou un NESTED TABLE) dans une colonne de type collection. C'est une manière rapide de connaître la «longueur» d'un ensemble entreposé en ligne.
- S'applique uniquement sur des types de colonnes collection : CARDINALITY ne fonctionne pas sur des colonnes scalaires normales (NUMBER, VARCHAR2,...). Elle ne s'utilise qu'avec des objets TABLE OF, souvent définis dans une colonne de type table imbriquée, stockée dans une table relationnelle.
- Très utile pour manipuler des objets ou types complexes en SQL : Quand on travaille avec des structures de données complexes (exemple : CREATE TYPE NumTab AS TABLE OF NUMBER;), CARDINALITY est essentielle pour savoir combien d'éléments sont contenus dans chaque instance de cette collection.
- Peut être utilisée dans une clause SELECT, WHERE, HAVING,... : On peut intégrer CARDINALITY(...) dans n'importe quelle clause SQL : elle permet, par exemple, de filtrer les lignes où une collection est vide ou non vide, ou encore de trier selon la taille de la collection.
- Retourne NULL si la collection est NULL : Si la colonne de type collection contient une valeur NULL (pas juste vide), alors CARDINALITY retourne également NULL. Il est donc parfois nécessaire d'utiliser la fonction NVL() pour remplacer le résultat par zéro si besoin.
- Différente de COUNT, qui s'applique à des lignes : Contrairement à la fonction COUNT, comptant des lignes dans un ensemble de résultats, CARDINALITY agit sur le contenu d'une cellule de type collection. Cela la rend utile pour l'analyse intra-ligne, plutôt qu'inter-ligne.
- Particulièrement utile dans les applications PL/SQL avec collections : Dans du code PL/SQL, notamment lors de requêtes sur des objets contenant des tables intégrées, CARDINALITY permet de valider des règles métier, comme «un employé doit avoir au moins 3 compétences» (si compétences est une table imbriquée).
- Optimisable dans certaines versions d'Oracle avec des vues matérialisées : Lorsque la cardinalité est stable ou peu variable, il est possible d'intégrer la fonction dans des vues matérialisées ou des index fonctionnels, ce qui permet d'optimiser les jointures ou les requêtes analytiques basées sur la taille des collections.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015