O tutorial de PL/SQL de hoje é sobre o método de coleta LIMIT. Já vimos 4 funções nesta série de métodos de coleta que são – Count, Exists, First e Last. Limite é a quinta função que aprenderemos hoje.
O que é o método de coleta LIMIT?
O método de coleção LIMIT, que na verdade é uma função PL/SQL, retorna o número máximo de elementos que um VARRAY pode conter. Isso significa que usando esta função você pode descobrir quantos elementos você pode armazenar em um VARRAY.
O que o método de coleta LIMIT retorna?
O método de coleta LIMIT retorna um valor do tipo PLS_INTEGER?
Esta função também funciona com outras duas coleções de tabelas aninhadas e matriz associativa?
O método de coleta LIMIT só funciona com VARRAY. Se for aplicado à tabela aninhada ou matriz associativa, essa função retornará um valor NULL ou No. Portanto, a resposta é:Não, a função de coleção LIMIT não funciona com tabelas aninhadas e matrizes associativas.
Qual é a especificação da função de coleção LIMIT?
A especificação da função de coleção LIMIT é:
FUNCTION LIMIT RETURN pls_integer;
A função de coleção LIMIT gera alguma exceção? Se sim, quando?
Sim, a função LIMIT gera a exceção COLLECTION_IS_NULL se for aplicada a uma tabela aninhada não inicializada ou a um VARRAY.
Você pode nos mostrar um exemplo de como usar a função LIMIT?
Claro, por que não. Aqui está um exemplo muito simples demonstrando como usar corretamente a função de coleção LIMIT com 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; /
Não temos a função COUNT que fornece a mesma informação?
A função de coleção LIMIT retorna o número total de índices de um VARRAY independentemente de esses índices estarem vazios ou conterem alguns dados . Ele verifica a definição do VARRAY e vê o número total de elementos que foi projetado para armazenar e retorna esse número.
Enquanto a função de coleção COUNT retorna o número de índices que não estão vazios e manter alguns dados .
Dê uma olhada neste programa PL/SQL. Isso ajudará você a entender a diferença entre o método de coleta COUNT e LIMIT com mais clareza.
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; /
No código acima temos um VARRAY que é capaz de conter 5 elementos do tipo de dados NUMBER. Na seção de execução, temos duas instruções de saída do DBMS. A primeira instrução de saída que está mostrando o resultado da função LIMIT retornará 5 porque essa é a força total do nosso VARRAY enquanto a segunda instrução de saída retornará 1 porque entre esses 5 índices há apenas um índice que possui alguns dados armazenados nele.
Você disse no vídeo que nos mostrará como descobrir o número total de elementos que não foram usados para armazenar dados em um varray usando o método de coleta LIMIT?
É assim mesmo? Eu disse isso? Estou só brincando.
Descobrir o número de índices vagos para seu uso em um VARRAY é muito fácil. Deixe-me dizer-lhe como.
Como eu disse acima, a função de coleção COUNT retorna o número de índices que possuem dados armazenados neles e a função de coleção LIMIT retorna o número total de índices que um VARRAY pode acomodar.
Se você subtrair o resultado da função count do resultado da função LIMIT, você obterá o número total de elementos deixados sem uso para armazenar dados em um varray. Por exemplo
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; /
Esse é o tutorial de PL/SQL respondendo a todas as perguntas que você pode esperar no exame de certificação, bem como na sua entrevista sobre o método de coleta LIMIT no banco de dados Oracle.
Existe alguma coisa que eu esqueci de abordar ou mencionar neste tutorial? Se sim, então, por favor, deixe-me. Escreva para mim no meu Twitter ou Facebook.
Obrigado tenha um ótimo dia.