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

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

V předchozím tutoriálu jsem zmínil, že existuje 7 funkcí sběru. Mezi těmito sedmi funkcemi shromažďování – COUNT ( ) je první, kterou v tomto tutoriálu prozkoumáme. Pokud sledujete tuto sérii PL/SQL Collection, pak jste se s touto sběrnou funkcí již museli setkat. Ale ode dneška jsme tomuto tématu věnovali celý blog, takže si dovolíme a podrobně prozkoumáme metodu sběru COUNT ( ).

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

Metoda kolekce COUNT ( ) vrací počet prvků v inicializační kolekci. Při použití s ​​inicializační kolekcí bez prvků; vrátí nulu.

Zmatený! Proč označujeme sběrné funkce a postupy jako sběrnou metodu? Přečtěte si Úvod do metod sběru a zjistěte odpověď.

Kdy vrací metoda shromažďování COUNT ( ) nulu?

Metoda kolekce COUNT ( ) vrací nulu, když je použita nebo řekněme použita s inicializační kolekcí (tj. VARRAYs &Nested Tables) bez prvků. Ve výsledku také vrátí nulu, když je použit s prázdným přidruženým polem.

Podpis metody shromažďování COUNT ( )?

Podpis funkce COUNT je –

FUNCTION COUNT RETURN PLS_INTEGER;

Doporučená četba:Funkce PL/SQL

Funguje metoda sběru COUNT ( ) stejně s vnořenou tabulkou?

Ne. Je to proto, že COUNT ( ) vrací počet neprázdných prvků ve vnořené tabulce, protože je možné, že tabulka vnořená do kolekce bude mít jednotlivé prvky, které jsou prázdné.

Proč se mi sakra zobrazuje chyba „Collection_IS_NULL“?

Zdá se, že používáte COUNT ( ) s neinicializovanou sbírkou. Kdykoli použijete funkci kolekce COUNT ( ) na neinicializovanou kolekci (tj. vnořené tabulky a VARRAY), vyvolá výjimku ‚Collection_Is_Null‘, což je předdefinovaná výjimka v databázi Oracle.

Asociativní pole nevyžadují inicializaci, a proto s nimi tuto výjimku nezískáte. Více o asociativních polích si můžete přečíst zde.

Příklady metody shromažďování COUNT ( )

Příklad 1:Vypočítejte celkový počet prvků uložených ve vnořené tabulce.

Funkci COUNT ( ) můžete použít k výpočtu celkového počtu prvků uložených do kolekce, jako je například vnořená tabulka.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nested_table IS TABLE OF number;
    var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90);
BEGIN
    DBMS_OUTPUT.PUT_LINE ('The Size of the Nested Table is ' ||var_nt.count);
END;
/

Pokračuj; zkopírujte a vložte výše uvedený kód do svého IDE a podívejte se na výsledek.

Příklad 2. Funkce COUNT ( ) s podmínkou IF

Funkci COUNT ( ) můžete použít k řízení toku programu pomocí podmínky. Pojďme tedy napsat velmi jednoduchý program, který bude demonstrovat, jak používat metodu kolekce COUNT ( ) s podmínkou IF.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nested_table IS TABLE OF number;
    var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90);
BEGIN
    IF var_nt.count >= 10 THEN
        DBMS_OUTPUT.PUT_LINE (‘you have already inserted 10 elements in your Nested table.');
        DBMS_OUTPUT.PUT_LINE ('Are you sure you want to insert more?');
    END IF;
END;
/

Podobně můžete použít metodu sběru COUNT ( ) se smyčkami. Můžete se podívat na výukový program PL/SQL na stejné téma, abyste se to naučili. Video najdete zde.

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ší facebookové stránce a na našem Twitteru.

Děkuji a přeji hezký den!


  1. Jedinečný klíč v Oracle s příklady

  2. Jak formátovat výsledky SQLite jako tabulku

  3. Multi-cloudové nasazení pro replikaci MariaDB pomocí WireGuard

  4. Jak nastavit OTA v R12 a 11i