Споменах в предишния урок, че има 7 функции за събиране. Сред тези седем функции за събиране – COUNT ( ) е първата, която ще разгледаме в този урок. Ако следвате тази серия от PL/SQL колекция, тогава сигурно вече сте се сблъсквали с тази функция за събиране. Но от днес сме посветили цял блог на тази тема, така че ще си позволим да проучим метода за събиране COUNT ( ) подробно.
Какво е методът за събиране COUNT ( )?
Методът за събиране COUNT ( ) връща броя на елементите в инициализирана колекция. Ако се използва с инициализираща колекция без елементи; връща нула.
Объркан! Защо обозначаваме функциите и процедурите за събиране като метод за събиране? Прочетете Въведение в колекцията Методи, за да разберете отговора.
Кога методът за събиране COUNT ( ) връща нула?
Методът за събиране COUNT ( ) връща нула, когато е приложен или, да речем, използван с инициализираща колекция (т.е. VARRAY и вложени таблици) без елементи. Също така връща нула като резултат, когато се използва с празен асоцииран масив.
Подпис на метода за събиране COUNT ( )?
Подписът на функцията COUNT е –
FUNCTION COUNT RETURN PLS_INTEGER;
Предложен четене:PL/SQL функции
Методът за събиране COUNT ( ) работи ли по същия начин с вложена таблица?
Не. Това е така, защото COUNT ( ), връща броя на непразните елементи във вложена таблица, тъй като е възможно вложена таблица на колекция да има отделни елементи, които са празни.
Защо, по дяволите, получавам грешка „Collection_IS_NULL“?
Изглежда, че използвате COUNT ( ) с неинициализирана колекция. Всеки път, когато приложите функцията за събиране COUNT ( ) към неинициализирана колекция (т.е. вложени таблици и VARRAY), тя повдига изключението „Collection_Is_Null“, което е предварително дефинирано изключение в Oracle Database.
Тъй като асоциативните масиви не изискват инициализация, по този начин няма да получите това изключение с тях. Можете да прочетете повече за асоциативните масиви тук.
Примери за метод за събиране COUNT ( )
Пример 1:Изчислете общия брой елементи, съхранени във вложена таблица.
Можете да използвате функцията COUNT ( ), за да изчислите общия брой елементи, съхранени в колекция, като например вложена таблица.
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; /
Продължавай; копирайте и поставете горния код във вашата IDE и вижте резултата.
Пример 2. Функция COUNT ( ) с условие IF
Можете да използвате функцията COUNT ( ), за да контролирате потока на програмата, като използвате условие. Така че нека напишем много проста програма, която ще демонстрира как да използваме метода на колекция COUNT ( ) с условие 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; /
По същия начин можете да използвате метода за събиране COUNT ( ) с цикли. Можете да гледате урока за PL/SQL на същата тема, за да се научите да правите това. Можете да намерите видеото тук.
Това е много проста демонстрация. Сигурен съм, че можете да измислите някои по-луди примери. И така, какво чакате, напишете своя код и вижте по какви други възможни начини можете да използвате този метод.
Ако искате да прегледам кода ви, можете да споделите кода си с мен на страницата ми във Facebook или в моя Twitter.
Как ви харесва този блог? Има ли нещо, което искате да подобрим? Кажете ни какво чувствате на нашата страница във Facebook и в нашия Twitter.
Благодаря и приятен ден!