Hoje vamos fazer uma demonstração prática para aprender a criar um VARRAY no Oracle Database, então fique à vontade para visitar o último tutorial para todas as teorias necessárias sobre VARRAYs. Como sempre, tentarei manter o exemplo o mais simples possível. Então, se você é novo na programação, não se preocupe, eu entendi!
Anteriormente, discutimos na introdução ao PL/SQL VARRAYs que, como VARRAYs de tabela aninhada, podem ser criados
- Como membro do PL/SQL Block e
- Como um objeto de banco de dados.
Hoje vamos aprender como criar VARRAYs como um membro do bloco PL/SQL e deixar o resto para os próximos tutoriais.
Etapa 1:Definir um Varray dentro do bloco PL/SQL
Você pode definir um varray somente dentro da seção de declaração de um bloco PL/SQL.
SET SERVEROUTPUT ON; DECLARE TYPE inBlock_vry IS VARRAY (5) OF NUMBER;
No código acima, criamos um VARRAY e o nomeamos inBlock_vry. Este varray é capaz de conter 5 elementos do tipo de dados Number.
Etapa 2:inicialize o Varray
A inicialização de um varray pode ser feita facilmente usando a variável de coleção. Para inicializar o VARRAY vamos primeiro definir uma variável de coleção e depois usá-la para inicializar.
vry_obj inBlock_vry := inBlock_vry();
No código acima criamos uma variável de coleção com o nome vry_obj e usamos isso para inicializar o varray inBlock_vry.
Informações:
Alguns livros referem-se à variável de coleção como objeto de coleção, portanto, não se confunda, pois ambos são a mesma coisa .
Etapa 3:como inserir dados no VARRAY
Inserir dados no varray é muito semelhante a inserir dados no array de outra linguagem de programação. Você pode inserir dados diretamente em cada célula do varray usando o número de índice ou pode usar LOOP para preencher o varray.
Como inserir dados no VARRAY usando o índice da célula
Como sabemos, a estrutura de uma coleção de células PL/SQL consiste em uma célula com um subscrito chamado índice. Podemos usar esse índice para inserir os dados no varray.
BEGIN vry_obj.EXTEND(5); vry_obj(1):= 10*2; DBMS_OUTPUT.PUT_LINE(vry_obj(1)); END; /
Seção de execução -1
No código acima escrevemos a seção de execução do bloco PL/SQL. Consiste em 3 instruções executáveis. Essas três afirmações são –
Linha 6:Declaração 1
A primeira instrução é uma chamada de procedimento EXTEND. Nesta instrução estamos alocando a memória para cada célula de VARRAY usando o procedimento EXTEND.
Linha 7:Declaração 2
Na segunda instrução estamos atribuindo um valor numérico (valor derivado da expressão de multiplicação aritmética) na primeira célula do varray (célula com número de índice 1).
Informações:
Na coleção PL/SQL, o número de índice VARRAY da célula começa com 1, enquanto o número de índice das células na matriz começa com 0.
Linha 8:Declaração 3
A terceira instrução é uma instrução de saída onde estamos exibindo o valor que armazenamos na 1 célula do VARRY de volta para o usuário.
É assim que você pode armazenar e exibir o valor armazenado em uma célula individual do varray. Este processo é bom apenas quando você tem um varray curto. Caso contrário, não é uma forma eficiente. Outra maneira de inserir dados no Varray é usando Loop.
Leitura recomendada:Introdução ao PL/SQL Loop
Como inserir dados em um VARRAY usando PL/SQL Loop
A maneira mais comum de lidar com dados de uma coleção é usando Loops. A maioria dos programadores está acostumada a usar Loops para percorrer os dados de qualquer tipo de array porque isso é fácil, consome menos tempo e tem menos linhas de códigos que mantêm seu código mais limpo e facilita a leitura. Em suma, é fácil e eficiente.
BEGIN FOR i IN 1 .. vry_obj.LIMIT LOOP vry_obj.EXTEND; vry_obj (i):= 10*i; DBMS_OUTPUT.PUT_LINE (vry_obj (i)); END LOOP; END; /
Seção de execução -2
Expliquei o código acima em detalhes no tutorial em vídeo no meu canal do YouTube, que você pode assistir aqui.
Ainda para minimizar a confusão vou explicar a você aqui as duas principais funções usadas na seção de execução acima (Seção de Execução – 2) que são – Limit &Extend.
Para entender o funcionamento do código mostrado acima, é necessário entender PL/SQL para loop. Felizmente, fiz um tutorial detalhado sobre o For-Loop, que você pode ler aqui.
Limite (linha 6): Limit é um método de coleta que retorna o número máximo de elementos permitidos no VARRAY. No nosso caso, o número máximo de elementos permitidos no VARRAY é 5 (linha 3) que por sua vez se torna o limite superior do For-Loop aqui.
Estender (Linha 8): Extend é um procedimento que é usado para alocar a memória e anexa um elemento ao VARRAY. Se usado sem argumento (Execution Section-2 Line 8) ele anexa um único elemento nulo e se usado com um argumento EXTEND (n) (execution section -1 Line 6) ele anexa n números à coleção. Onde n é o inteiro que você forneceu como argumento para o procedimento EXTEND.
Esse é o tutorial PL/SQL sobre Como criar a coleção VARRAY no Oracle Database como membro do bloco PL/SQL. Por favor, certifique-se de curtir este blog, bem como compartilhá-lo com seus amigos e se inscrever no meu canal, pois muitos desses tutoriais ainda estão por vir. Obrigado e tenha um ótimo dia!