Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Metoda gromadzenia:funkcja COUNT w bazie danych Oracle

Wspomniałem w poprzednim samouczku, że istnieje 7 funkcji zbierania. Wśród tych siedmiu funkcji zbierania – LICZBA ( ) jest pierwszą, którą zamierzamy zbadać w tym samouczku. Jeśli śledzisz tę serię kolekcji PL/SQL, to musiałeś już natknąć się na tę funkcję zbierania. Ale na dzień dzisiejszy poświęciliśmy temu tematowi cały blog, więc pozwolimy sobie na szczegółowe zbadanie metody zbierania danych COUNT ( ).

Co to jest metoda zbierania COUNT ( )?

Metoda kolekcji COUNT ( ) zwraca liczbę elementów w inicjowanej kolekcji. W przypadku użycia z kolekcją inicjalizacji bez elementów; zwraca zero.

Zmieszany! Dlaczego funkcje i procedury windykacyjne określamy jako metodę windykacyjną? Przeczytaj Wprowadzenie do metod gromadzenia, aby znaleźć odpowiedź.

Kiedy metoda zbierania danych COUNT ( ) zwraca zero?

Metoda zbierania COUNT ( ) zwraca zero, gdy jest stosowana lub powiedzmy używana z inicjalizacją kolekcji (tj. VARRAYs i zagnieżdżone tabele) bez elementów. Zwraca również zero jako wynik, gdy jest używany z pustą powiązaną tablicą.

Podpis metody odbioru COUNT ( )?

Sygnatura funkcji LICZBA to –

FUNCTION COUNT RETURN PLS_INTEGER;

Sugerowana lektura:funkcje PL/SQL

Czy metoda zbierania COUNT ( ) działa tak samo w przypadku tabeli zagnieżdżonej?

Nie. Dzieje się tak, ponieważ LICZBA ( ) zwraca liczbę niepustych elementów w tabeli zagnieżdżonej, ponieważ tabela zagnieżdżona kolekcji może mieć pojedyncze elementy, które są puste.

Dlaczego do cholery otrzymuję błąd „Collection_IS_NULL”?

Wygląda na to, że używasz COUNT ( ) z niezainicjowaną kolekcją. Za każdym razem, gdy stosujesz funkcję zbierania COUNT ( ) do niezainicjowanej kolekcji (tj. Tabele zagnieżdżone i VARRAY), wywołuje wyjątek „Collection_Is_Null”, który jest predefiniowanym wyjątkiem w Oracle Database.

Ponieważ tablice asocjacyjne nie wymagają inicjalizacji, nie dostaniesz z nimi tego wyjątku. Możesz przeczytać więcej o tablicach asocjacyjnych tutaj.

Przykłady metody zbierania COUNT ( )

Przykład 1:Oblicz całkowitą liczbę elementów przechowywanych w tabeli zagnieżdżonej.

Możesz użyć funkcji LICZBA ( ), aby obliczyć całkowitą liczbę elementów przechowywanych w kolekcji, takiej jak tabela zagnieżdżona.

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

Zacząć robić; skopiuj i wklej powyższy kod do swojego IDE i zobacz wynik.

Przykład 2. Funkcja LICZBA ( ) z warunkiem JEŻELI

Możesz użyć funkcji LICZBA ( ) do sterowania przepływem programu za pomocą warunku. Napiszmy więc bardzo prosty program, który zademonstruje, jak używać metody zbierania danych COUNT ( ) z warunkiem 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;
/

Podobnie możesz użyć metody zbierania COUNT ( ) z pętlami. Możesz obejrzeć samouczek PL/SQL na ten sam temat, aby dowiedzieć się, jak to zrobić. Film można znaleźć tutaj.

To bardzo prosta demonstracja. Jestem pewien, że możesz wymyślić kilka bardziej szalonych przykładów. Więc na co czekasz, śmiało napisz swój kod i zobacz, na jakie inne możliwe sposoby możesz użyć tej metody.

Jeśli chcesz, abym sprawdził Twój kod, możesz udostępnić mi swój kod na mojej stronie na Facebooku lub na moim Twitterze.

Jak ci się podoba ten blog? Czy jest coś, co chcesz, abyśmy ulepszyli? Powiedz nam, co czujesz na naszej stronie na Facebooku i na naszym Twitterze.

Dzięki i życzę miłego dnia!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja MOD() w Oracle

  2. Polecenie Oracle CREATE TABLE w PL/SQL z 10 przykładami

  3. Wysyłanie tablicy wartości do procedury Oracle do użycia w klauzuli WHERE IN

  4. Funkcja ASIN() w Oracle

  5. Powtarzające się wiersze na podstawie wartości kolumny w każdym wierszu