Sei sulla pagina 1di 11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

Buscar

download

post favorito

comentrios
Conhece a assinatura MVP?

Utilizando Vetores no Oracle Parte 1


Veja neste artigo o incio de uma srie de trabalhos que iro
abordar as caractersticas e as formas de manipulao de
vetores no Oracle.

http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

Publicidade

1/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

Gostei (2)

(0)

Utilizando Vetores no Oracle - Parte 1


Eduardo Corra Gonalves

Instituto Brasileiro de Geografia e Estatstica IBGE


E-mail: eduardo.correa@ibge.gov.br

Servios

1. Introduo
CONTEDO

REVISTAS

CURSOS

DEVWARE

MVP

Inclua um comentrio

LOGIN

Adicionar aos Favoritos


Marcar como lido/assistido
Este artigo representa o primeiro de uma srie de trabalhos que iro abordar as

Incluir anotao pessoal

caractersticas e as formas de manipulao de vetores no Oracle. Este SGBD disponibiliza um


tipo de dados especfico para a representao de vetores (tanto em programas PL/SQL,
como em colunas de tabelas), denominado VARRAY (variable-size array), cujos conceitos
bsicos sero apresentados neste texto.

+Banco de dados

2. Utilizao de vetores no em Programas PL/SQL

http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

2/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

Assim como em qualquer linguagem de programao, um vetor em PL/SQL representa um


grupo de posies contguas em memria que possuem o mesmo nome e o mesmo tipo. A
Figura 1 ilustra um exemplo de vetor chamado V que contm 10 posies e armazena as
notas mdias dos alunos de um curso de programao em PL/SQL.

Figura 1. Vetor V com 10 posies para armazenar notas mdias de alunos.

Para referenciar um elemento (valor) no vetor, devemos utilizar o nome do vetor em questo
e o ndice (ou subscrito) do elemento que desejamos acessar entre parnteses. Tem-se,
por exemplo, que V(7) constitui uma referncia ao stimo elemento do vetor V, cujo valor
8.5. No entanto, o primeiro passo para a utilizao de um vetor em PL/SQL consiste na sua
declarao (criao). O cdigo a seguir apresenta uma maneira que pode ser utilizada para
declarar o vetor V dentro de um programa PL/SQL.

http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

3/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

CREATE OR REPLACE PROCEDURE P_TESTE IS

TYPE tVETOR IS VARRAY(10) OF NUMBER(4,2); -- define o tipo do vetor

V tVETOR; --declara um vetor com o nome V e o tipo tVetor

BEGIN
<corpo do programa...>
END;

No exemplo acima, o vetor foi V foi declarado dentro de uma procedure denominada
P_TESTE. Para que o vetor pudesse ser declarado, primeiro foi necessrio criar o seu
tipo (com o uso do comando TYPE). Observe que foi criado um tipo denominado tVETOR,
que especifica um vetor de 10 posies para valores do tipo NUMBER(4,2). Aps a definio
do tipo que deve ocorrer, de fato, a declarao do vetor. Em nosso exemplo, o vetor
foi declarado com nome V e com o tipo tVETOR. importante saber que, uma vez declarado,
um vetor no poder ser redimensionado durante a execuo do programa PL/SQL.

http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

4/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

Para que qualquer elemento do vetor possa ser referenciado dentro do corpo do programa,
preciso que este seja inicializado - caso contrrio o PL/SQL ir disparar uma exceo (ou
seja, um erro. Os diferentes tipos exceo sero examinados no prximo artigo desta srie).
Para exemplificar o processo de inicializao de vetores, considere a funo F_APROVADOS,
cuja especificao apresentada na Figura 2. Esta funo cria e preenche um vetor
contendo a mdia final de 10 alunos. Em seguida, o vetor percorrido por um loop (comando
for) e o nmero de alunos aprovados contabilizado (alunos cuja mdia final igual ou
superior a 7.0). O resultado deste clculo retornado pela funo para o usurio.

http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

5/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

Figura 2. Funo F_APROVADOS

Examinando a funo F_APROVADOS, possvel observar a declarao do vetor V nas linhas


3 e 4. Na linha 9 ocorre a inicializao do vetor. So atribudos valores para cada uma de
suas 10 posies (note que so os mesmos valores apresentados na Figura 1!). Para
inicializar nosso VARRAY, utilizou-se um construtor, que representa uma funo de sistema
(automaticamente criada pelo PL/SQL) que possui o mesmo nome do tipo do vetor V
(tVetor).

V := tVETOR(7.8, 5.0, 8.5, 9.0, 6.4, 10.0, 8.5, 8.6, 7.5, 9.2);

Com a utilizao do construtor, seria possvel tambm inicializar o vetor com o valor zero em
todas as suas dez posies, conforme indica o exemplo a seguir:

V := tVETOR(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

O detalhe mais importante que voc precisa saber o seguinte: no PL/SQL, para que uma
posio de um VARRAY possa ser referenciada (ou seja, para a posio poder ter um
http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

6/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

valor lido ou atribudo), primeiro necessrio que o seu subscrito seja inicializado.

Vamos agora retornar ao programa da Figura 2. Observe que aps a inicializao do vetor, os
seus elementos so examinados num loop, para que a quantidade de mdias superiores ao
valor 7 possa ser contabilizada (linhas 14 a 18) e ento retornada pela funo (linha 21).
Para testar a funo (caso voc a tenha criado em seu banco Oracle), basta utilizar o
seguinte comando SELECT:

SELECT F_APROVADOS FROM DUAL;

3. Comentrios Finais

Este artigo apresentou alguns conceitos elementares sobre o tipo VARRAY do Oracle. Em
artigos futuros sero exploradas mais caractersticas deste recurso, tais como a forma de
passar um VARRAY como parmetro em procedimentos e funes PL/SQL, como fazer
vetores receberem dados oriundos de tabelas Oracle num programa e tambm a maneira pela
qual um vetor pode ser armazenado numa tabela. At breve!

http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

7/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

Eduardo Corra Gonalves


Doutorando e mestre em Cincia da Computao pelo Instituto de Computao da Universidade Federal
Fluminense (IC/UFF). Atua principalmente nas seguintes linhas de pesquisa: Minerao de Dados,
Algoritmos, Banco de Dados e XML.

O que voc achou deste post?

Gostei (2)

(0)

Comentrio | Tire sua dvida


Magdev
C omo diz o assunto no demore muito para colocar o resto deste assunto pois estou muito
interessada em saber como adicionar valores a um array na mo. Obs: Seu link esta
quebrado
[h +1 ano] - Responder
Ecorrea
Na prxima semana a parte 2 ser disponibilizada, pode deixar! Quanto ao link, eu
http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

8/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

verifiquei que est funcionando corretamente. Voc poderia tentar efetuar o


download novamente?
[h +1 ano] - Responder

Mais posts
Revista

Revista SQL Magazine 122


Video aula

Otimizando o Sistema Operacional: Disco - Curso de Oracle: Otimizao de desempenho Aula 38


Artigo

Gerenciamento de Banco de Dados: Anlise Comparativa de SGBDS


Video aula

Otimizando o Sistema Operacional: Memria - Curso de Oracle: Otimizao de desempenho Aula 37


http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

9/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

Video aula

Otimizando o Sistema Operacional: CPU - Curso de Oracle: Otimizao de desempenho - Aula


36
Artigo

Introduo ao SSIS Introduo ao BIDS


Artigo

Implementando auditoria no Oracle


Artigo

Testando a senha do banco de dados


Artigo

User Defined Functions: Trabalhando com SQL UDFs


Artigo

SQL Server Profiler: Otimizando consultas no SQL Server


Listar mais contedo
http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

10/11

16/6/2014

Utilizando Vetores no Oracle - Parte 1

Anuncie | Loja | Publique | Assine | Fale conosco

Hospedagem web por Porta 80 Web


Hosting

http://www.devmedia.com.br/utilizando-vetores-no-oracle-parte-1/5136

Todos os Direitos Reservados a


Web-03

11/11

Potrebbero piacerti anche