Oracle
 sql >> Base de données >  >> RDS >> Oracle

Méthode de collecte :fonction COUNT dans la base de données Oracle

J'ai mentionné dans le tutoriel précédent qu'il existe 7 fonctions de collecte. Parmi ces sept fonctions de collection - COUNT ( ) est la première que nous allons explorer dans ce didacticiel. Si vous suivez cette série de collections PL/SQL, vous devez déjà avoir rencontré cette fonction de collecte. Mais à partir d'aujourd'hui, nous avons consacré un blog complet à ce sujet, nous allons donc prendre la liberté et explorer la méthode de collecte COUNT ( ) en détail.

Qu'est-ce que la méthode de collecte COUNT ( ) ?

La méthode de collection COUNT ( ) renvoie le nombre d'éléments dans une collection d'initialisation. S'il est utilisé avec une collection initialize sans éléments ; il renvoie zéro.

Confus ! Pourquoi désigne-t-on les fonctions et procédures de collecte comme méthode de collecte ? Lisez Introduction aux méthodes de collecte pour trouver la réponse.

Quand la méthode de collecte COUNT ( ) renvoie-t-elle zéro ?

La méthode de collection COUNT ( ) renvoie zéro lorsqu'elle est appliquée ou utilisée avec une collection d'initialisation (c'est-à-dire VARRAYs et tables imbriquées) sans éléments. Il renvoie également zéro comme résultat lorsqu'il est utilisé avec un tableau associé vide.

Signature de la méthode de collecte COUNT ( ) ?

La signature de la fonction COUNT est –

FUNCTION COUNT RETURN PLS_INTEGER;

Lecture suggérée :Fonctions PL/SQL

La méthode de collecte COUNT ( ) fonctionne-t-elle de la même manière avec un tableau imbriqué ?

Non. En effet, COUNT ( ) renvoie le nombre d'éléments non vides dans un tableau imbriqué, car il est possible qu'un tableau imbriqué de collection ait des éléments individuels vides.

Pourquoi diable ai-je l'erreur "Collection_IS_NULL" ?

Il semble que vous utilisiez COUNT() avec une collection non initialisée. Chaque fois que vous appliquez la fonction de collecte COUNT ( ) à une collection non initialisée (c'est-à-dire des tables imbriquées et des VARRAY), elle déclenche l'exception "Collection_Is_Null", qui est une exception prédéfinie dans Oracle Database.

Comme les tableaux associatifs ne nécessitent pas d'initialisation, vous n'obtiendrez donc pas cette exception avec eux. Vous pouvez en savoir plus sur les tableaux associatifs ici.

Exemples de méthode de collecte COUNT ( )

Exemple 1 :Calculer le nombre total d'éléments stockés dans une table imbriquée.

Vous pouvez utiliser la fonction COUNT ( ) pour calculer le nombre total d'éléments stockés dans une collection telle qu'une table imbriquée.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nested_table IS TABLE OF number;
    var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90);
BEGIN
    DBMS_OUTPUT.PUT_LINE ('The Size of the Nested Table is ' ||var_nt.count);
END;
/

Vas-y; copiez et collez le code ci-dessus dans votre IDE et voyez le résultat.

Exemple 2. Fonction COUNT ( ) avec condition IF

Vous pouvez utiliser la fonction COUNT ( ) pour contrôler le déroulement du programme à l'aide d'une condition. Écrivons donc un programme très simple qui montrera comment utiliser la méthode de collecte COUNT ( ) avec la condition IF.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nested_table IS TABLE OF number;
    var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90);
BEGIN
    IF var_nt.count >= 10 THEN
        DBMS_OUTPUT.PUT_LINE (‘you have already inserted 10 elements in your Nested table.');
        DBMS_OUTPUT.PUT_LINE ('Are you sure you want to insert more?');
    END IF;
END;
/

De même, vous pouvez utiliser la méthode de collecte COUNT() avec des boucles. Vous pouvez regarder le tutoriel PL/SQL sur le même sujet pour apprendre à le faire. Vous pouvez trouver la vidéo ici.

C'est une démonstration très simple. Je suis sûr que vous pouvez trouver des exemples plus fous. Alors qu'attendez-vous, allez-y et écrivez votre code et voyez de quelles autres manières possibles vous pouvez utiliser cette méthode.

Si vous voulez que je révise votre code, vous pouvez partager votre code avec moi sur ma page Facebook ou sur mon Twitter également.

Comment trouvez-vous ce blog ? Y a-t-il quelque chose que vous voudriez que nous améliorions ? Dites-nous ce que vous ressentez sur notre page Facebook et sur notre Twitter.

Merci et bonne journée !