sql >> Databasteknik >  >> RDS >> Oracle

Insamlingsmetod:FINNS Funktion i Oracle Database

Nu när vi har lärt oss begreppen första samlingsfunktionen, som är COUNT i den tidigare handledningen. Det är dags att gå vidare till den andra funktionen i insamlingsmetoden. Så här presenterar jag dig PL/SQL-insamlingsmetoden FINNS. I den här bloggen kommer vi att utforska insamlingsmetoden FINNS ( ) i detalj.

Vad är insamlingsmetod FINNS ( )?

Collection Method EXISTS ( ) kontrollerar förekomsten av ett element vid ett specifikt index i en samling. Om den hittar det angivna elementet returnerar den TRUE annars returnerar den FALSE.

Du kan använda funktionen FINNS ( ) för att kontrollera att det finns en specifik rad i samlingen.

Syntax för insamlingsmetod FINNS ( )

Syntaxen för funktionen EXISTS ( ) är –

EXISTS (index number);

EXISTS-funktionen tar sänknings-/indexnumret för en cell i samlingen som en indata och söker efter den i samlingen. Om den hittar något element som motsvarar indexnummer returnerar det TRUE annars returnerar det FALSE.

Returnerar insamlingsmetoden EXISTS NULL?

Ingen FINNS-funktion returnerar inte null. Det returnerar antingen True eller False.

Vad händer om jag tar bort en redan existerande rad med TRIM- eller DELETE-funktionen?

Om du tar bort en rad med funktionen Trim eller Ta bort kommer insamlingsmetoden EXISTS ( ) att returnera FALSE för indexet för den raden.

Finns insamlingsmetoden något undantag?

Nej, insamlingsmetoden FINNS ger inget undantag. Detta är faktiskt den enda funktionen som inte ger upphov till något undantag, även om den används med en oinitierad samling.

Om det inte ger upphov till ett undantag, vad händer då om jag tillämpar den här funktionen på en oinitierad samling?

Samlingsmetod EXISTS ( ) returnerar falskt, om det tillämpas antingen på en oinitierad samling eller på en initialiserad samling utan element.

Exempel på insamlingsmetod FINNS ( ).

Detta enkla exempel visar dig hur du kan använda den här funktionen 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 programmet ovan kontrollerar vi om det finns något element vid index 1 i samlingen 'my_nested_table' eller inte. Om det finns ett element vid det angivna indexet kommer IF-delen av IF-ELSE-satsen att köras, annars kommer ELSE-delen in i åtgärden.

Vad ska du göra...?

Anta att du vill infoga en data i ett specifikt index men du är inte säker på om det indexet redan innehåller vissa data eller inte. Om den håller någon så vill du inte skriva över den. Vad kommer du att göra i det här fallet?

För att veta hur du kan använda insamlingsmetoden FINNS för att hitta lösningen på detta problem, gå vidare och titta på PL/SQL-handledningen på min YouTube-kanal.

Det är en mycket enkel demonstration. Jag är säker på att du kan komma med några galnare exempel. Så vad väntar du på, fortsätt och skriv din kod och se på vilka andra möjliga sätt du kan använda den här metoden.

Om du vill att jag ska granska din kod kan du dela din kod med mig på min Facebook-sida eller på min Twitter också.

Hur gillar du den här bloggen? Är det något du vill att vi ska förbättra? Berätta för oss vad du känner på vår Facebook-sida och på vår Twitter.

Tack och ha en bra dag.


  1. php/mysql med flera frågor

  2. SqlDataAdapter.Fill metod långsam

  3. SQL Server Error:Sträng eller binär data skulle trunkeras

  4. SQL Server Active Sessions and Status