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

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

Le didacticiel PL/SQL d'aujourd'hui porte sur la méthode de collecte LIMIT. Nous avons déjà vu 4 fonctions dans cette série de méthodes de collecte qui sont - Count, Existe, First et Last. La limite est la cinquième fonction que nous allons apprendre aujourd'hui.

Qu'est-ce que la limite de méthode de collecte ?

La méthode de collecte LIMIT qui est en fait une fonction PL/SQL renvoie le nombre maximum d'éléments qu'un VARRAY peut contenir. Cela signifie qu'en utilisant cette fonction, vous pouvez savoir combien d'éléments vous pouvez stocker dans un VARRAY.

Que renvoie la méthode de collecte LIMIT ?

La méthode de collecte LIMIT renvoie une valeur de type PLS_INTEGER ?

Cette fonction fonctionne-t-elle également avec les deux autres collections Nested Tables et Associative Array ?

La méthode de collecte LIMIT ne fonctionne qu'avec VARRAY. Si elle s'applique à une table imbriquée ou à un tableau associatif, cette fonction renverra une valeur NULL ou No. La réponse est donc non, la fonction de collecte LIMIT ne fonctionne pas avec les tables imbriquées et les tableaux associatifs.

Quelle est la spécification de la fonction de collecte LIMIT ?

La spécification de la fonction de collecte LIMIT est :

FUNCTION LIMIT RETURN pls_integer;

La fonction de collecte LIMIT génère-t-elle une exception ? Si oui, alors quand ?

Oui, la fonction LIMIT lève une exception COLLECTION_IS_NULL si elle est appliquée à une table imbriquée non initialisée ou à un VARRAY.

Pouvez-vous nous montrer un exemple d'utilisation de la fonction LIMIT ?

Bien sûr, pourquoi pas. Voici un exemple très simple démontrant comment utiliser correctement la fonction de collecte LIMIT avec VARRAYs.

SET SERVEROUTPUT ON;
DECLARE
    TYPE inBlock_vry IS VARRAY (5) OF NUMBER;
    vry_obj inBlock_vry := inBlock_vry();
BEGIN
 --Let's find out total number of indexes in the above VARRAY
    DBMS_OUTPUT.PUT_LINE ('Total Indexes '||vry_obj.LIMIT);
END;
/

N'avons-nous pas la fonction COUNT qui donne les mêmes informations ?

La fonction de collecte LIMIT renvoie le nombre total d'index d'un VARRAY que ces index soient vides ou contiennent des données . Il vérifie la définition du VARRAY et voit le nombre total d'éléments qu'il est conçu pour stocker et renvoie ce nombre.

Alors que la fonction de collecte COUNT renvoie le nombre d'index qui ne sont pas vides et contenant des données .

Jetez un oeil à ce programme PL/SQL. Cela vous aidera à mieux comprendre la différence entre la méthode de collecte COUNT et LIMIT.

SET SERVEROUTPUT ON;
DECLARE
    --Create VARRAY of 5 element
    TYPE inblock_vry IS
        VARRAY ( 5 ) OF NUMBER;
    vry_obj   inblock_vry := inblock_vry ();
BEGIN
    --Insert into VARRAY
    	vry_obj.extend;
    	vry_obj(1) := 10 * 2; 
dbms_output.put_line('Total Number of Index ' || vry_obj.limit);
dbms_output.put_line('Total Number of Index which are occupied ' || vry_obj.count);
END;
/

Dans le code ci-dessus, nous avons un VARRAY capable de contenir 5 éléments de type de données NUMBER. Dans la section d'exécution, nous avons deux instructions de sortie du SGBD. La première instruction de sortie qui affiche le résultat de la fonction LIMIT renverra 5 car c'est la force totale de notre VARRAY tandis que la deuxième instruction de sortie renverra 1 car parmi ces 5 index, il n'y a qu'un seul index qui contient des données stockées.

Vous avez dit dans la vidéo que vous nous montrerez comment connaître le nombre total d'éléments non utilisés pour que nous stockions des données dans un varray en utilisant la méthode de collecte LIMIT ?

Est-ce vrai? Est-ce que j'ai dit ça ? Je plaisante.

Connaître le nombre d'index vacants pour votre usage dans un VARRAY est très facile. Laissez-moi vous dire comment.

Comme je l'ai dit ci-dessus, la fonction de collecte COUNT renvoie le nombre d'index contenant des données stockées et la fonction de collecte LIMIT renvoie le nombre total d'index qu'un VARRAY peut contenir.

Si vous soustrayez le résultat de la fonction count du résultat de la fonction LIMIT, vous obtiendrez le nombre total d'éléments non utilisés pour stocker des données dans un varray. Par exemple

DECLARE
    --Create VARRAY of 5 element
    TYPE inblock_vry IS
        VARRAY ( 5 ) OF NUMBER;
    vry_obj   inblock_vry := inblock_vry ();
BEGIN
    --Insert into VARRAY
    vry_obj.extend;
    vry_obj(1) := 10 * 2;
    dbms_output.put_line('Total Number of Index ' || vry_obj.limit);
    dbms_output.put_line('Total Number of Index which are occupied ' || vry_obj.count);
    dbms_output.put_line('Total Number of Vacant index left for use '
                            || (vry_obj.limit - vry_obj.count) );
END;
/

C'est le tutoriel PL/SQL répondant à toutes les questions auxquelles vous pouvez vous attendre lors de l'examen de certification ainsi que dans votre entretien sur la méthode de collecte LIMIT dans la base de données Oracle.

Y a-t-il quelque chose que j'ai oublié de couvrir ou de mentionner dans ce tutoriel? Si oui, alors s'il vous plaît laissez-moi. Écrivez-moi sur mon Twitter ou Facebook.

Merci bonne journée.