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

Como criar VARRAYs como membro do bloco PL/SQL no banco de dados Oracle




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!