Como fazer um select em um collection?

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
rodfbar
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 241
Registrado em: Ter, 09 Out 2007 11:15 am
Localização: Batatais - SP

Ola pessoal boa tarde.

Estou criando um type, dentro de uma package, que vai ser tratado como uma coleção (alimentado por bulk collect) e possui colunas de tipos variados.
alguém sabe é possivel e qual é a forma de eu fazer um select nesta coleção, sem eu precisar criar types no oracle (usando apenas o type na package, sem precisar criar um type no oracle)?
Teriam exemplos?

Desde já agradeço pela atenção
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá rodfbar,

Veja se este exemplo do ASKTOM (do Tom Kyte) lhe ajudaria a resolver o seu problema:

http://asktom.oracle.com/pls/apex/f?p=1 ... 6014735810

O link acima dá alguns exemplos interessantes de como usar TYPES, FUCTIONS e PACKAGES para trabalhar com COLLECTIONS.

Se não atender às suas necessidades, poste aquí novamente.

Abraços,

Sergio Coutinho
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE

Pelo que entendi creio que seja (resumidamente) isto:

Selecionar tudo

PROCEDURE PPPP IS

CURSOR c_select IS SELECT .....;

--Cria o tipo e a variável desse tipo.
TYPE ct_select IS TABLE OF c_select%ROWTYPE;
col_select ct_select;

BEGIN
...
 OPEN c_select
 FETCH c_select BULK COLLECT
 INTO col_select;
 CLOSE c_select;

 FOR i IN col_select.FIRST() .. col_select.LAST() LOOP
 ....
 END LOOP;
....

END PPPP;
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Sim,
Creio que seria isso mesmo !
Abraços,
Sergio
Responder
  • Informação