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

Metoda sběru:Funkce LIMIT v databázi Oracle

Dnešní výukový program PL/SQL je celý o LIMIT metod sběru. V této řadě metod sběru jsme již viděli 4 funkce – Count, Exists, First a Last. Limit je pátá funkce, kterou se dnes naučíme.

Co je LIMIT metody shromažďování?

Metoda sběru LIMIT, což je ve skutečnosti funkce PL/SQL, vrací maximální počet prvků, které může VARRAY pojmout. To znamená, že pomocí této funkce můžete zjistit, kolik prvků můžete uložit do VARRAY.

Co vrací metoda sběru LIMIT?

Metoda sběru LIMIT vrací hodnotu typu PLS_INTEGER?

Funguje tato funkce také s dalšími dvěma kolekcemi vnořených tabulek a asociativním polem?

Metoda sběru LIMIT funguje pouze s VARRAY. Pokud se použije na vnořenou tabulku nebo asociativní pole, vrátí tato funkce buď hodnotu NULL, nebo žádnou. Takže odpověď zní:Ne, funkce sběru LIMIT nefunguje s vnořenými tabulkami a asociativními poli.

Jaká je specifikace sběrné funkce LIMIT?

Specifikace sběrné funkce LIMIT je:

FUNCTION LIMIT RETURN pls_integer;

Vyvolává funkce sběru LIMIT nějakou výjimku? Pokud ano, tak kdy?

Ano, funkce LIMIT vyvolá výjimku COLLECTION_IS_NULL, pokud je aplikována na neinicializovanou vnořenou tabulku nebo VARRAY.

Můžete nám ukázat příklad, jak používat funkci LIMIT?

Jistě proč ne. Zde je velmi jednoduchý příklad demonstrující, jak správně používat funkci sběru LIMIT s VARRAYs.

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

Nemáme funkci COUNT, která poskytuje stejné informace?

Funkce sběru dat LIMIT vrací celkový počet indexů VARRAY bez ohledu na to, zda jsou tyto indexy prázdné nebo obsahují nějaká data . Zkontroluje definici VARRAY a uvidí celkový počet prvků, které má uložit, a vrátí toto číslo.

Zatímco funkce sběru COUNT vrací počet indexů, které nejsou prázdné a uchovávání některých dat .

Podívejte se na tento PL/SQL program. To vám pomůže lépe pochopit rozdíl mezi metodou shromažďování COUNT a LIMIT.

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

Ve výše uvedeném kódu máme VARRAY, který je schopen pojmout 5 prvků datového typu NUMBER. V sekci provádění máme dva výstupní příkazy DBMS. První výstupní příkaz, který ukazuje výsledek funkce LIMIT, vrátí 5, protože to je celková síla našeho VARRAY, zatímco druhý výstupní příkaz vrátí 1, protože mezi těmito 5 indexy je pouze jeden index, který má v sobě uložena nějaká data.

Ve videu jste řekli, že nám ukážete,jak zjistit celkový počet prvků, které zůstaly nevyužity, abychom mohli uložit data do varray pomocí metody sběru LIMIT?

je to tak? Řekl jsem to? Dělám si srandu.

Zjištění počtu volných indexů pro vaše použití ve VARRAY je velmi snadné. Řeknu vám jak.

Jak jsem řekl výše, funkce sběru COUNT vrací počet indexů, ve kterých jsou uložena data, a funkce sběru LIMIT vrací celkový počet indexů, které může VARRAY pojmout.

Pokud odečtete výsledek funkce počet od výsledku funkce LIMIT, získáte celkový počet prvků, které zůstaly nevyužity pro uložení dat do varray. Například

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

To je tutoriál PL/SQL, který odpovídá na všechny otázky, které můžete očekávat v certifikační zkoušce i ve vašem rozhovoru o metodě sběru LIMIT v databázi Oracle.

Je něco, co jsem zapomněl pokrýt nebo zmínit v tomto tutoriálu? Pokud ano, dovolte mi to. Napište mi na můj Twitter nebo Facebook.

Děkuji přeji hezký den.


  1. Postgres ručně mění sekvenci

  2. Počítání počtu spojených řádků v levém spojení

  3. 2 způsoby, jak vytvořit tabulku, pokud v Oracle ještě neexistuje

  4. Alternativy diagnostiky pgDash - Správa dotazů PostgreSQL s ClusterControl