Trabalhando com PL/SQL Table no Oracle

[ad#texto]

Variáveis de tabelas também são conhecidas como arrays,  index-by tables, PL/SQL Tables ou ainda PL Tables.

Este é um recurso do PL/SQL da Oracle bem interessante, pois permite criar uma espécie de tabela virtual (definir campos e seus tipos) e com base nesta definição criar uma variável com sua estrutura, permitindo realizar inserção multilinhas de dados, remoção de linhas (dados) ou ainda iterar sobre os registros contidos, e o melhor, tudo é processo em altíssima performance.

Para definir a estrutura de uma PL/SQL Table:

-- Definição da estrutura do tipo
TYPE typ_alunos  IS
 RECORD (aluno sua_tabela.seu_campoi%TYPE
        ,nota NUMBER);

-- Define o tipo pela estrutura criada
TYPE typ_tab_alunos IS TABLE OF typ_alunos  INDEX BY PLS_INTEGER;

O próximo passo será criar uma variável com base neste tipo de estrutura criado:

vr_alunos  typ_tab_alunos;

Em uma PL/SQL Table não trabalhamos como se fosse uma tabela física, por exemplo, para restringir uma consulta de dados não pode utilizar a cláusula WHERE, por exemplo, até podemos mas é um assunto mais complexo, pois teremos que criar uma Pipe Table e isso fica para outra ocasião.

Veja alguns recursos de iteração de uma PL/SQL Table:

A sintaxe é:  table_name[ (parametros)]

EXISTS(n):  Retorna TRUE se o n elemento existir.

COUNT: Número de linhas da PL/SQL Table.

FIRST: Primeiro registro da PL/SQL Table.

LAST:  Último registro da PL/SQL Table, retorna NULL se está vazia

PRIOR(n): Retorna o índice que precede n na PL/SQL Table;

NEXT(n): Retorna o índice que sucede n na PL/SQL Table;

EXTEND(n,i): Adiciona n copias do i elemento para a PL/SQL Table. Default de i é NULL e default de n é 1 (existe apenas na versão 8 ou superior).

TRIM(n): Remove o n elemento do fim da PL/SQL Table. Default de n é 1 (existe apenas na versão 8 ou superior).

DELETE(m,n): Apaga os elementos entre m ... n. Default de m é n e default de n é TODOS elementos.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.