Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Método de coleta:função COUNT no banco de dados Oracle




Eu mencionei no tutorial anterior que existem 7 funções de coleção. Entre essas sete funções de coleta – COUNT ( ) é a primeira que vamos explorar neste tutorial. Se você está seguindo esta série de Coleção PL/SQL, já deve ter se deparado com essa função de coleta. Mas a partir de hoje dedicamos um blog completo a este tópico, portanto, tomaremos a liberdade e exploraremos o método de coleta COUNT ( ) em detalhes.

O que é o método de coleta COUNT ( )?


O método de coleção COUNT ( ) retorna o número de elementos em uma coleção de inicialização. Se usado com uma coleção de inicialização sem elementos; ele retorna zero.

Confuso! Por que denotamos funções e procedimentos de coleta como Método de Coleta? Leia Introdução aos métodos de coleta para descobrir a resposta.

Quando o método de coleta COUNT ( ) retorna zero?


O método de coleção COUNT ( ) retorna zero quando é aplicado ou usado com uma coleção de inicialização (ou seja, VARRAYs e tabelas aninhadas) sem elementos. Ele também retorna zero como resultado quando é usado com um array associado vazio.

Assinatura do método de coleta COUNT ( )?


A assinatura da função COUNT é –
FUNCTION COUNT RETURN PLS_INTEGER;

Leitura sugerida:funções PL/SQL

O método de coleta COUNT ( ) funciona da mesma forma com uma tabela aninhada?


Não. Isso ocorre porque COUNT ( ), retorna o número de elementos não vazios em uma tabela aninhada, pois é possível que uma tabela aninhada de coleção tenha elementos individuais vazios.

Por que diabos estou recebendo o erro "Collection_IS_NULL"?


Parece que você está usando COUNT ( ) com uma coleção não inicializada. Sempre que você aplica a função de coleção COUNT ( ) a uma coleção não inicializada (ou seja, tabelas aninhadas e VARRAYs), ela gera a exceção ‘Collection_Is_Null’ que é uma exceção predefinida no Oracle Database.

Como os Associative Arrays não requerem inicialização, você não receberá essa exceção com eles. Você pode ler mais sobre arrays associativos aqui.

Exemplos de método de coleta COUNT ( )

Exemplo 1:calcule o número total de elementos armazenados em uma tabela aninhada.


Você pode usar a função COUNT ( ) para calcular o número total de elementos armazenados em uma coleção, como uma tabela aninhada.
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;
/

Vá em frente; copie e cole o código acima em seu IDE e veja o resultado.

Exemplo 2. Função COUNT ( ) com condição IF


Você pode usar a função COUNT ( ) para controlar o fluxo do programa usando uma condição. Então vamos escrever um programa muito simples que irá demonstrar como usar o método de coleta COUNT ( ) com IF Condition.
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;
/

Da mesma forma, você pode usar o método de coleta COUNT ( ) com Loops. Você pode assistir ao tutorial de PL/SQL no mesmo tópico para aprender a fazer isso. Você pode encontrar o vídeo aqui.

Essa é uma demonstração muito simples. Tenho certeza de que você pode inventar alguns exemplos mais loucos. Então, o que você está esperando, vá em frente e escreva seu código e veja de que outras maneiras possíveis você pode usar esse método.

Se você quiser que eu revise seu código, você pode compartilhar seu código comigo na minha página do Facebook ou no meu Twitter também.

Você gosta deste blog? Há algo que você deseja que melhoremos? Conte-nos o que você sente em nossa página do Facebook e em nosso Twitter.

Obrigado e tenha um ótimo dia!