sql >> Databáze >  >> RDS >> Oracle

Metoda shromažďování:EXISTS Funkce v databázi Oracle

Nyní, když jsme se naučili koncepty funkce první kolekce, což je COUNT v předchozím tutoriálu. Je čas přejít k druhé funkci série metod sběru. Proto vám zde představuji metodu kolekce PL/SQL EXISTS. V tomto blogu podrobně prozkoumáme metodu sběru EXISTS ( ).

Co je metoda shromažďování EXISTUJE ( )?

Metoda kolekce EXISTS ( ) kontroluje existenci prvku na konkrétním indexu v kolekci. Pokud najde zadaný prvek, vrátí hodnotu TRUE, jinak vrátí hodnotu FALSE.

Funkci EXISTS ( ) můžete použít ke kontrole existence konkrétního řádku v kolekci.

Syntaxe metody shromažďování EXISTUJE ( )

Syntaxe funkce EXISTS ( ) je –

EXISTS (index number);

Funkce EXISTS převezme číslo dolního indexu/indexu buňky kolekce jako vstup a vyhledává je v kolekci. Pokud nalezne jakýkoli prvek odpovídající indexovému číslu, vrátí hodnotu TRUE, jinak vrátí hodnotu FALSE.

Vrací metoda shromažďování EXISTS hodnotu NULL?

Funkce No EXISTS nevrací hodnotu null. Buď vrátí True nebo False.

Co když odstraním již existující řádek pomocí funkce TRIM nebo DELETE?

Pokud odstraníte řádek pomocí funkce Trim nebo Delete, pak metoda sběru EXISTS ( ) vrátí FALSE pro index tohoto řádku.

Vyvolává metoda shromažďování EXISTS nějakou výjimku?

Ne, metoda sběru EXISTS nevyvolává žádnou výjimku. Ve skutečnosti je to jediná funkce, která nevyvolává žádnou výjimku, i když je použita s neinicializovanou kolekcí.

Pokud nevyvolá výjimku, co se stane, když tuto funkci použiji na neinicializovanou kolekci?

Metoda kolekce EXISTS ( ) vrací hodnotu false, pokud je použita buď na neinicializovanou kolekci, nebo na inicializovanou kolekci bez prvků.

Existuje příklad metody shromažďování ( ).

Tento jednoduchý příklad vám ukáže, jak můžete tuto funkci použít ve své aplikaci.

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

Ve výše uvedeném programu kontrolujeme, zda existuje nějaký prvek na indexu 1 v kolekci ‚my_nested_table‘ nebo ne. Pokud je na zadaném indexu prvek, pak se část IF příkazu IF-ELSE provede, jinak se do akce dostane část ELSE.

Co uděláte…?

Předpokládejme, že chcete vložit data do určitého indexu, ale nejste si jisti, zda tento index již obsahuje nějaká data nebo ne. V případě, že nějakou drží, nechcete ji přepsat. Co uděláte v tomto případě?

Chcete-li vědět, jak můžete použít metodu sběru EXISTS k nalezení řešení tohoto problému, pokračujte a podívejte se na výukový program PL/SQL na mém kanálu YouTube.

To je velmi jednoduchá ukázka. Jsem si jistý, že dokážete vymyslet nějaké bláznivější příklady. Na co tedy čekáte, napište svůj kód a uvidíte, jakými dalšími možnými způsoby můžete tuto metodu použít.

Pokud chcete, abych zkontroloval váš kód, můžete se mnou svůj kód sdílet na mé stránce na Facebooku nebo na mém Twitteru.

Jak se vám líbí tento blog? Je něco, co bychom chtěli zlepšit? Řekněte nám, co cítíte, na naší stránce na Facebooku a na našem Twitteru.

Děkuji a přeji hezký den.


  1. Tipy pro zámky čtení/zápisu v závislosti na úrovni izolace transakcí v MSSQL

  2. Jak najít duplicitní záznamy v MySQL

  3. Zjednodušte vnořený příkaz case when

  4. Rozdíl mezi TRIM() a TRIM_ORACLE() v MariaDB