sql >> Database >  >> RDS >> Oracle

Verzamelmethode:COUNT-functie in Oracle Database

Ik zei in de vorige tutorial dat er 7 verzamelfuncties zijn. Van deze zeven verzamelingsfuncties is COUNT ( ) de eerste die we in deze tutorial gaan onderzoeken. Als je deze serie van PL/SQL Collection volgt, dan ben je deze verzamelfunctie vast al tegengekomen. Maar vanaf vandaag hebben we een volledige blog aan dit onderwerp gewijd, dus we zullen de vrijheid nemen om de verzamelmethode COUNT ( ) in detail te verkennen.

Wat is de verzamelmethode COUNT ( )?

Verzamelmethode COUNT ( ) retourneert het aantal elementen in een geïnitialiseerde verzameling. Indien gebruikt met een initialisatieverzameling zonder elementen; het geeft nul terug.

Verward! Waarom noemen we incassofuncties en -procedures Incassomethode? Lees Inleiding tot verzamelingsmethoden om het antwoord te vinden.

Wanneer retourneert Verzamelmethode COUNT ( ) nul?

Verzamelmethode COUNT ( ) retourneert nul wanneer het wordt toegepast of gebruikt met een geïnitialiseerde verzameling (d.w.z. VARRAY's en geneste tabellen) zonder elementen. Het retourneert ook nul als resultaat wanneer het wordt gebruikt met een lege bijbehorende array.

Handtekening van verzamelmethode COUNT ( )?

De handtekening van de functie COUNT is –

FUNCTION COUNT RETURN PLS_INTEGER;

Voorgestelde lezing:PL/SQL-functies

Werkt de verzamelmethode COUNT ( ) hetzelfde met een geneste tabel?

Nee. Dit komt omdat COUNT ( ), het aantal niet-lege elementen in een geneste tabel retourneert, aangezien het mogelijk is dat een in een verzameling geneste tabel afzonderlijke elementen heeft die leeg zijn.

Waarom krijg ik in godsnaam de foutmelding 'Collection_IS_NULL'?

Het lijkt erop dat u COUNT ( ) gebruikt met een niet-geïnitialiseerde verzameling. Telkens wanneer u de verzamelfunctie COUNT ( ) toepast op een niet-geïnitialiseerde verzameling (d.w.z. geneste tabellen en VARRAY's), wordt de uitzondering 'Collection_Is_Null' gegenereerd, wat een vooraf gedefinieerde uitzondering is in Oracle Database.

Associatieve arrays vereisen geen initialisatie, dus u krijgt deze uitzondering niet mee. U kunt hier meer lezen over associatieve arrays.

Voorbeelden van verzamelmethode COUNT ( )

Voorbeeld 1:bereken het totale aantal elementen dat is opgeslagen in een geneste tabel.

U kunt de functie AANTAL ( ) gebruiken om het totale aantal elementen te berekenen dat is opgeslagen in een verzameling, zoals een geneste 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;
/

Doe Maar; kopieer en plak de bovenstaande code in uw IDE en bekijk het resultaat.

Voorbeeld 2. COUNT ( ) functie met ALS voorwaarde

U kunt de functie AANTAL ( ) gebruiken om de stroom van het programma te regelen met behulp van een voorwaarde. Laten we dus een heel eenvoudig programma schrijven dat laat zien hoe je de verzamelmethode COUNT ( ) kunt gebruiken met IF-voorwaarde.

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

Op dezelfde manier kunt u de verzamelmethode COUNT ( ) gebruiken met Loops. U kunt de PL/SQL-tutorial over hetzelfde onderwerp bekijken om dat te leren. Je kunt de video hier vinden.

Dat is een heel eenvoudige demonstratie. Ik weet zeker dat je nog gekkere voorbeelden kunt bedenken. Dus waar wacht je nog op, ga je gang en schrijf je code en kijk op welke andere mogelijke manieren je deze methode kunt gebruiken.

Als je wilt dat ik je code bekijk, kun je je code ook met mij delen op mijn Facebook-pagina of op mijn Twitter.

Wat vind je van deze blog? Is er iets dat je wilt dat we verbeteren? Vertel ons wat je voelt op onze Facebook-pagina en op onze Twitter.

Bedankt en een fijne dag verder!


  1. Tijdelijke tabellen maken in SQL

  2. Records verwijderen uit een externe postgresql-database met behulp van een lokaal geleverde lijst

  3. Query's herschrijven om de prestaties te verbeteren

  4. Hoe een id uit de database te halen bij het klikken op een lijstweergave-item in Android