sql >> Database >  >> RDS >> Oracle

Verzamelmethode:LIMIT-functie in Oracle Database

De PL/SQL-tutorial van vandaag gaat helemaal over Collection Method LIMIT. We hebben al 4 functies gezien in deze reeks van verzamelingsmethoden, namelijk:Count, Exists, First en Last. Limiet is de vijfde functie die we vandaag gaan leren.

Wat is de verzamelmethode LIMIT?

Verzamelmethode LIMIT die eigenlijk een PL/SQL-functie is, retourneert het maximale aantal elementen dat een VARRAY kan bevatten. Dit betekent dat u door deze functie te gebruiken kunt zien hoeveel elementen u in een VARRAY kunt opslaan.

Wat levert de verzamelmethode LIMIT op?

Verzamelmethode LIMIT retourneert een waarde van het type PLS_INTEGER?

Werkt deze functie ook met andere twee verzamelingen geneste tabellen en associatieve arrays?

Verzamelmethode LIMIT werkt alleen met VARRAY. Als het is toegepast op geneste tabel of associatieve array, retourneert deze functie een NULL- of No-waarde. Het antwoord is dus:Nee, de verzamelfunctie LIMIT werkt niet met geneste tabellen en associatieve arrays.

Wat is de specificatie van de verzamelfunctie LIMIT?

De specificatie van de verzamelfunctie LIMIT is:

FUNCTION LIMIT RETURN pls_integer;

Maakt de verzamelfunctie LIMIT een uitzondering? Zo ja, wanneer dan?

Ja, de functie LIMIT genereert uitzondering COLLECTION_IS_NULL als deze wordt toegepast op een niet-geïnitialiseerde geneste tabel of een VARRAY.

Kun je ons een voorbeeld laten zien van het gebruik van de functie LIMIT?

Natuurlijk waarom niet. Hier is een heel eenvoudig voorbeeld dat laat zien hoe je de verzamelfunctie LIMIT op de juiste manier gebruikt met VARRAY's.

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

Hebben we niet de functie COUNT die dezelfde informatie geeft?

De verzamelfunctie LIMIT retourneert het totale aantal indexen van een VARRAY ongeacht of deze indexen leeg zijn of bepaalde gegevens bevatten . Het controleert de definitie van de VARRAY en ziet het totale aantal elementen dat het is ontworpen om op te slaan en geeft dat aantal terug.

Terwijl de verzamelfunctie COUNT het aantal indexen retourneert die niet leeg zijn en het bewaren van enkele gegevens .

Kijk eens naar dit PL/SQL-programma. Dit zal u helpen het verschil tussen de verzamelmethode COUNT en LIMIT beter te begrijpen.

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

In de bovenstaande code hebben we een VARRAY die 5 elementen van NUMBER datatype kan bevatten. In de uitvoeringssectie hebben we twee DBMS-uitvoerinstructies. De eerste uitvoerinstructie die het resultaat van de LIMIT-functie laat zien, retourneert 5 omdat dat de totale sterkte van onze VARRAY is, terwijl de tweede uitvoerinstructie 1 retourneert omdat er onder die 5 indexen slechts één index is waarin enkele gegevens zijn opgeslagen.

Je zei in de video dat je ons zult laten zien hoe we het totale aantal elementen kunnen achterhalen dat ongebruikt is gelaten voor ons om gegevens op te slaan in een varray met behulp van de verzamelmethode LIMIT?

Is dat zo? Heb ik dat gezegd? Ik maak maar een grapje.

Het is heel eenvoudig om het aantal vacante indexen voor uw gebruik in een VARRAY te achterhalen. Laat me je vertellen hoe.

Zoals ik hierboven al zei, retourneert de verzamelfunctie COUNT het aantal indexen waarin gegevens zijn opgeslagen en de verzamelfunctie LIMIT retourneert het totale aantal indexen dat een VARRAY kan accommoderen.

Als u het resultaat van de count-functie aftrekt van het resultaat van de LIMIT-functie, krijgt u het totale aantal elementen dat niet wordt gebruikt om gegevens in een varray op te slaan. Bijvoorbeeld

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

Dat is de PL/SQL-tutorial die alle vragen beantwoordt die u kunt verwachten in het certificeringsexamen en in uw interview over de verzamelmethode LIMIT in de Oracle-database.

Is er iets dat ik ben vergeten te bespreken of te vermelden in deze tutorial? Zo ja, laat het me dan alsjeblieft. Schrijf me op mijn Twitter of Facebook.

Bedankt nog een fijne dag.


  1. Hoe panda's dataframe via mysqldb in de database invoegen?

  2. MariaDB JSON_QUERY() uitgelegd

  3. Excel-blad converteren naar database van sqlite in Android

  4. Hoe verplaats ik mijn bestaande rails-app naar Heroku? (sqlite naar postgres)