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.