Tipo List

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
Marciel
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 158
Registrado em: Qui, 03 Mai 2007 10:12 am
Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.

Existe algum tipo "Lista Encadeada" em PL/SQL?

Esse tipo é implementado no Reports 6, mas não encontrei nada a respeito para usar em procedures de banco.
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Em PL/SQL se utilizam Nested Tables (tabelas aninhadas), que são parecidas como uma lista encadeada. Cada nó de uma nested table tem a estrutura de uma linha de uma tabela, e elas são navegadas de forma mista, usando métodos NEXT e PRIOR além de índices (FIRST, LAST, COUNT, etc).

Mencionei que nested tables são como listas encadeadas porque são esparsas, ao contrário de arrays. Ou seja, você pode deletar (método DELETE) um elemento do meio dela e o método NEXT vai pular os elementos deletados na navegação automaticamente, assim como o COUNT vai desconsiderá-los. Existe ainda o método TRIM para fazer um coalesce das porções esparsas da nested table, eliminando os nós vazios nas bordas.

Há ainda outros dois tipos de dados semelhantes, os V-Arrays e os Index-By Tables. Diferenciando a grosso modo, V-Arrays tem tamanho fixo e Index-By usam índices tipados (varchar, integer, usadas como tabelas temporárias de lookup).

Dê uma lida na documentação sobre Collections:
http://download.oracle.com/docs/cd/E118 ... osites.htm
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes