Introdução às coleções PL / SQL
Primeiro de tudo, como outras linguagens de programação modernas, o PL / SQL também oferece aos programadores a possibilidade de usar coleções de PL / SQL. Portanto, em termos gerais, a coleção é uma estrutura de dados com um grupo ordenado de elementos do mesmo tipo de dados e esses elementos são acessados por meio de índices de acordo com os requisitos específicos. As coleções mais usadas na maioria das linguagens de programação são Matrizes, Conjunto, Lista e Fila etc.
A coleção PL / SQL oferece muitas vantagens ao programador e ao usuário ao armazenar e acessar os dados de tipos de dados semelhantes em um aplicativo. Quando é necessário processar os dados de uma só vez ou manipular uma grande quantidade de dados, as coleções PL / SQL são muito úteis. Também reduz o tamanho e a velocidade de processamento enquanto armazena os dados e acessa os elementos. Os elementos nas coleções podem ser acessados facilmente através de loops e índices. Ao contrário de matrizes em outras linguagens de programação, o PL / SQL suporta apenas coleções unidimensionais e os dados nas coleções são identificados pelos subscritos (também chamados de índice em outras linguagens). Cada elemento é acessado e processado através deste subscrito exclusivo.
Tipos de coleções PL / SQL
As coleções PL / SQL são de 3 tipos, que são fornecidos abaixo com sintaxe:
Tabelas aninhadas
Uma tabela aninhada é uma coleção PL / SQL na qual o tamanho não é fixo. Portanto, é como uma matriz unidimensional, exceto pelo fato de que o tamanho é fixo em matrizes e pode ser denso e esparso. O programador precisa estender a memória todas as vezes antes de usá-la usando EXTEND Subscript na tabela Nested começa com um número inteiro '1'.
As tabelas aninhadas estão em coleções persistentes PL / SQL, o que significa que elas podem ser reutilizadas posteriormente conforme armazenadas no banco de dados. O programador também pode excluir um elemento da matriz e tornar a tabela esparsa, o que significa que as tabelas aninhadas podem ser densas e esparsas. As tabelas aninhadas podem ser declaradas dentro do bloco PL / SQL ou no nível do esquema.
Como não há limite para o tamanho superior nas tabelas aninhadas, elas se enquadram na categoria de coleções PL / SQL não vinculadas.
Sintaxe:
TYPE typ_name IS table of element_data_type;
Table_name typ_name;
Matrizes de tamanho variável ou VARRAYs
VARRAY é a coleção PL / SQL na qual o tamanho da coleção é fixo, conforme definido em sua definição, de modo que VARRAYs são chamados de elementos limitados. Elementos em matrizes são preenchidos sequencialmente a partir do subscrito 1. Diferentemente das tabelas aninhadas, as varrays fornecem menos flexibilidade à medida que são densas. só. Portanto, o programador não pode excluir nenhum elemento do meio, o varray inteiro é excluído ou pode ser aparado a partir do final. Varrays deve ser acessado e armazenado sequencialmente. Pode ser definido dentro do bloco PL / SQL ou no nível do esquema. Como as tabelas aninhadas, os varrays se enquadram na categoria de coleções persistentes, para que possam ser reutilizados e armazenados no banco de dados.
Sintaxe:
TYPE typ_name IS VARRAY OF element_data_type;
Matrizes associativas
Como o nome sugere, matrizes associativas são usadas para manter os valores em pares chave-valor. A chave usada pode ser um tipo de sequência ou número inteiro. Matrizes associativas também são chamadas de tabela Índice por. Essa coleção pode ser densa ou esparsa. Em matrizes associativas, o tamanho da matriz não é fixo na inicialização e o programador não precisa inicializá-las antes de usá-lo. Uma matriz associativa se enquadra na categoria de coleções não persistentes, o que significa que elas não são armazenadas no banco de dados e não podem ser reutilizadas, sendo definidas dentro do bloco PL / SQL e usadas apenas nessa sessão específica. Essas matrizes estão na categoria de coleções ilimitadas.
Sintaxe:
TYPE typ_name IS TABLE OF element_data_type;
Métodos de Coleta
O PL / SQL fornece alguns métodos predefinidos para facilitar o trabalho com coleções. Alguns dos métodos são apresentados abaixo:
S.No. | Nome do método | Descrição |
1 | CONTAGEM | Retorna o número de elementos presentes na coleção |
2) | PRIMEIRO | Retorna o menor (primeiro) número de índice na coleção para subscritos inteiros |
3) | ÚLTIMO | Retorna o maior (último) número de índice da coleção para subscritos inteiros. |
4) | EXISTENTES (n) | É usado para verificar se um elemento específico está presente na coleção ou não. Retorna TRUE se os enésimos elementos estiverem presentes na coleção, FALSE se não estiver. |
5) | ANTERIOR (n) | Retorna o número do índice que é o predecessor do índice (n) fornecido pelo usuário na coleção. |
6 | NEXT (n) | Retorna o número do índice que é o sucessor do índice (n) fornecido pelo usuário na coleção. |
7) | APARAR | É usado para remover elementos da coleção. TRIM remove o último elemento da coleção e TRIM (n) remove o último n elemento do final da coleção. |
8) | EXCLUIR | É usado para remover todos os elementos da coleção fornecida. Define a contagem da coleção como 0 após remover todos os elementos |
9 | DELETE (m, n) | É usado no caso de matrizes associativas e tabelas indexadas para remover todos os elementos no intervalo de m a n. Retorna null se m for maior que n. |
10) | LIMITE | É usado para verificar o tamanho máximo da coleção. |
Exceções de coleção
Dada a seguir, estão algumas das exceções que mais provavelmente surgem ao trabalhar com coleções.
Nome da exceção | Um cenário em que a exceção surge |
NENHUM DADO ENCONTRADO | Uma exceção surge quando um subscrito referencia um elemento que é excluído e não existe mais. |
VALUE_ERROR | A exceção ocorre quando o valor das colunas que tentam acessar não é convertível para o tipo de chave ou quando um índice é nulo |
COLLECTION_IS_NULL | Surgem exceções ao trabalhar em uma coleção nula automaticamente |
SUBSCRIPT_BEYOND_CO UNT | Uma exceção surge quando um subscrito excede a contagem máxima de um número de elementos na coleção. |
SUBSCRIPT_OUTSIDE_LIM IT | A exceção surge ao tentar fazer referência usando o número do índice que está fora do intervalo legal. |
TOO_MANY_ROWS | Uma exceção surge quando uma instrução SELECT into retorna mais de 1 linha. |
Vantagens das coleções em PL / SQL
Algumas das vantagens das coleções PL / SQL são apresentadas abaixo:
- Além disso, uma das maiores vantagens das coleções é que ela melhora o desempenho do sistema, armazenando em cache os dados estáticos que precisam ser acessados regularmente.
- Mais importante, as coleções são úteis ao trabalhar com um grande conjunto de dados com o mesmo tipo de dados no qual o usuário precisa executar várias operações DML.
- Ao usar a variável de coleção única, podemos reduzir o número múltiplo de variáveis usadas para armazenar valores diferentes e, portanto, salvar a memória.
- A realização de operações diferentes, como armazenamento e processamento de dados, torna-se fácil através dos métodos de coleta PL / SQL já fornecidos.
Conclusão
Através da descrição acima, você pode ter uma idéia do que é a coleção PL / SQL e dos métodos que podem ser usados nas coleções PL / SQL. Antes de usar qualquer tipo de coleção PL / SQL no programa, o desenvolvedor precisa pensar profundamente sobre o cenário antes de escolher qualquer tipo. Embora o trabalho em coleções PL / SQL não seja difícil, mas certas exceções podem surgir em diferentes pontos dos quais o programador deve estar ciente e saber como lidar com eles.
Artigos recomendados
Este é um guia para coleções PL / SQL. Aqui discutimos a sintaxe, os tipos, os métodos e as exceções das coleções PL / SQL, além das vantagens. Você também pode consultar os seguintes artigos para saber mais -
- Cursores em PL / SQL
- Instrução CASE em PL / SQL
- Perguntas da entrevista do Oracle PL / SQL
- Comandos PL / SQL