sql >> Database teknologi >  >> RDS >> Oracle

Indsamlingsmetode:COUNT-funktion i Oracle-databasen

Jeg nævnte i den forrige tutorial, at der er 7 samlingsfunktioner. Blandt disse syv indsamlingsfunktioner - COUNT ( ) er den første, som vi skal udforske i denne tutorial. Hvis du følger denne serie af PL/SQL Collection, må du allerede have stødt på denne indsamlingsfunktion. Men fra i dag har vi dedikeret en komplet blog til dette emne, så vi vil tage os den frihed og udforske indsamlingsmetoden COUNT ( ) i detaljer.

Hvad er ANTAL indsamlingsmetode ( )?

Indsamlingsmetode COUNT ( ) returnerer antallet af elementer i en initialiseringssamling. Hvis det bruges med en initialiseringssamling uden elementer; det returnerer nul.

Forvirret! Hvorfor betegner vi indsamlingsfunktioner og -procedurer som indsamlingsmetode? Læs Introduktion til indsamlingsmetoder for at finde ud af svaret.

Hvornår returnerer indsamlingsmetode COUNT ( ) nul?

Indsamlingsmetode COUNT ( ) returnerer nul, når den anvendes, eller f.eks. bruges med en initialiseringsopsamling (dvs. VARRAY'er og indlejrede tabeller) uden elementer. Det returnerer også nul som et resultat, når det bruges med et tomt associeret array.

Signatur af indsamlingsmetode COUNT ( )?

Signaturen for funktionen COUNT er –

FUNCTION COUNT RETURN PLS_INTEGER;

Foreslået læsning:PL/SQL-funktioner

Virker indsamlingsmetode COUNT ( ) det samme med en indlejret tabel?

Nej. Dette skyldes, at COUNT ( ), returnerer antallet af ikke-tomme elementer i en indlejret tabel, da det er muligt for en indlejret samlingstabel at have individuelle elementer, der er tomme.

Hvorfor pokker får jeg fejlen "Collection_IS_NULL"?

Det ser ud til, at du bruger COUNT ( ) med en ikke-initialiseret samling. Når du anvender indsamlingsfunktionen COUNT ( ) på en ikke-initialiseret samling (dvs. indlejrede tabeller og VARRAY'er), fremkalder den undtagelsen "Collection_Is_Null", som er en foruddefineret undtagelse i Oracle-databasen.

Da Associative Arrays ikke kræver initialisering, vil du derfor ikke få denne undtagelse med dem. Du kan læse mere om Associative arrays her.

Eksempler på ANTAL indsamlingsmetode ( )

Eksempel 1:Beregn det samlede antal elementer, der er gemt i en indlejret tabel.

Du kan bruge funktionen COUNT ( ) til at beregne det samlede antal elementer, der er gemt i en samling, såsom indlejret tabel.

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;
/

Fortsæt; kopier og indsæt ovenstående kode i din IDE og se resultatet.

Eksempel 2. COUNT ( ) funktion med IF Condition

Du kan bruge funktionen COUNT ( ) til at styre programmets flow ved hjælp af en betingelse. Så lad os skrive et meget simpelt program, som vil demonstrere, hvordan man bruger indsamlingsmetode COUNT ( ) med IF Condition.

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;
/

På samme måde kan du bruge indsamlingsmetoden COUNT ( ) med Loops. Du kan se PL/SQL-tutorialen om det samme emne for at lære at gøre det. Du kan finde videoen her.

Det er en meget enkel demonstration. Jeg er sikker på, at du kan komme med nogle mere skøre eksempler. Så hvad venter du på, gå videre og skriv din kode og se på hvilke andre mulige måder du kan bruge denne metode.

Hvis du vil have mig til at gennemgå din kode, kan du også dele din kode med mig på min Facebook-side eller på min Twitter.

Hvordan kan du lide denne blog? Er der noget, du vil have os til at forbedre? Fortæl os, hvad du føler på vores Facebook-side og på vores Twitter.

Tak og god dag!


  1. Den glemte opgaveoperatør =og det almindelige :=

  2. Måder at gendanne data fra SQL Server Transaction Log File

  3. MySQL POW() Funktion – Hæv en værdi til kraften af ​​en anden værdi

  4. Sådan fungerer LEFT()-funktionen i SQL Server (T-SQL)