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

Indsamlingsmetode:FINDER Funktion i Oracle-databasen

Nu hvor vi har lært begreberne af den første indsamlingsfunktion, som er COUNT i den forrige tutorial. Det er tid til at gå videre til den anden funktion i indsamlingsmetodeserien. Derfor præsenterer jeg dig her, PL/SQL-indsamlingsmetoden EKSISTERER. I denne blog vil vi udforske indsamlingsmetoden FINDER ( ) i detaljer.

Hvad er indsamlingsmetode EKSISTERER ( )?

Collection Method EXISTS ( ) kontrollerer eksistensen af ​​et element ved et specifikt indeks i en samling. Hvis den finder det angivne element, returnerer den TRUE ellers returnerer den FALSK.

Du kan bruge funktionen EXISTS ( ) til at kontrollere eksistensen af ​​en bestemt række i samlingen.

Syntaks for indsamlingsmetode FINDER ( )

Syntaksen for funktionen EXISTS ( ) er –

EXISTS (index number);

EKSISTERER-funktionen tager det sænkede/indeksnummer på en celle i samlingen som en input og søger efter den i samlingen. Hvis den finder et element svarende til indeksnummer, returnerer det TRUE ellers returnerer det FALSK.

Returnerer indsamlingsmetoden EXISTS NULL?

Ingen EXISTS-funktion returnerer ikke null. Det returnerer enten True eller False.

Hvad hvis jeg fjerner en allerede eksisterende række ved hjælp af TRIM- eller DELETE-funktionen?

Hvis du fjerner en række ved at bruge Trim eller Delete-funktionen, vil indsamlingsmetoden EKSISTERER ( ) returnere FALSE for indekset for den række.

Eksisterer indsamlingsmetoden nogen undtagelse?

Nej, indsamlingsmetode EKSISTERER ingen undtagelse. Faktisk er dette den eneste funktion, der ikke rejser nogen undtagelse, selvom den bruges med en ikke-initialiseret samling.

Hvis det ikke rejser en undtagelse, hvad vil der så ske, hvis jeg anvendte denne funktion på en ikke-initialiseret samling?

Indsamlingsmetode EXISTS ( ) returnerer falsk, hvis den anvendes enten på en ikke-initialiseret samling eller på en initialiseringssamling uden elementer.

Eksempel på indsamlingsmetode FINDER ( ).

Dette enkle eksempel viser dig, hvordan du kan bruge denne funktion i din applikation.

SET SERVEROUTPUT ON;
DECLARE
        --Declare a local Nested Table
    	TYPE my_nested_table IS TABLE OF VARCHAR2 (20);
 --Declare collection variable and initialize the collection.	
col_var_1   my_nested_table := my_nested_table('Super Man','Iron Man','Bat Man');
BEGIN
    IF col_var_1.EXISTS (1) THEN
        DBMS_OUTPUT.PUT_LINE ('Hey we found '||col_var_1 (1));
    ELSE
        DBMS_OUTPUT.PUT_LINE ('Sorry, no data at this INDEX');
    END IF;
END;
/  

I ovenstående program tjekker vi, om der er noget element ved indeks 1 i samlingen 'my_nested_table' eller ej. Hvis der er et element ved det angivne indeks, vil IF-delen af ​​IF-ELSE-sætningen udføres, ellers vil ELSE-delen komme ind i handlingen.

Hvad vil du gøre...?

Antag, at du vil indsætte en data i et specifikt indeks, men du er ikke sikker på, om det indeks allerede indeholder nogle data eller ej. I tilfælde af, at den holder nogen, så ønsker du ikke at overskrive den. Hvad vil du gøre i dette tilfælde?

For at vide, hvordan du kan bruge indsamlingsmetoden FINDER til at finde løsningen på dette problem, gå videre og se PL/SQL-tutorialen på min YouTube-kanal.

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 hav en god dag.


  1. Lær at gemme og analysere dokumenter på Windows filsystem med SQL Server Semantic Search – Del 1

  2. Hvordan gemmes datoer i Oracle?

  3. SQLite fælder og faldgruber

  4. Hvorfor intet output, når PLSQL Anonymous-blok er fuldført?