Em seu caso, usaria uma Tabela PL/SQL (Hash)

TYPE <nome do tipo> IS TABLE OF <tipo dos valores> INDEX BY <tipo da chave>;

ou vetor:

TYPE <nome do tipo> IS VARRAY <tamanho máximo> OF <tipo do elemento>;

Você pode fazer algo do tipo:

select coluna bulk collect into <nome do tipo tabela>
       from tabela;

Fica muito simples e extremamente eficiente.

Até mais,

Robert


2008/11/14 Leonardo Rezende <[EMAIL PROTECTED]>

> Podes tentar com o EXECUTE IMMEDIATE...
>
> José Costacurta escreveu:
> >
> > Wellerson, bom dia.
> >
> > Mas eu consigo criar essa tabela temporária dentro de uma procedure ou
> > tenho
> > que deixá-la criada já?
> >
> > Eu tentei criar dentro da procedura mas deu erro.
> >
> > Valeu.
> >
> > Abraço.
> >
> > De: oracle_br@yahoogrupos.com.br
> > <mailto:oracle_br%40yahoogrupos.com.br<oracle_br%2540yahoogrupos.com.br>
> >
> > [mailto:oracle_br@yahoogrupos.com.br
> > <mailto:oracle_br%40yahoogrupos.com.br<oracle_br%2540yahoogrupos.com.br>>]
> Em
> > nome de Wellerson Leite de Araújo
> > Enviada em: sexta-feira, 14 de novembro de 2008 09:22
> > Para: oracle_br@yahoogrupos.com.br <mailto:
> oracle_br%40yahoogrupos.com.br <oracle_br%2540yahoogrupos.com.br>>
> > Assunto: Res: [oracle_br] Tabela temporária
> >
> > José,
> >
> > Utilize tabelas temporárias. Através do seguinte comando CREATE GLOBAL
> > TEMPORARY TABLE <nome da tabela>. Este recurso permite que os dados
> > databela
> > estejam disponíveis enquanto você está conectado, ou enquanto você não
> > finaliza a transação.
> > Ex: CREATE GLOBAL TEMPORARY TABLE temp (id NUMBER, nome VARCHAR2(30))
> > Neste caso, após o um commit todas as linhas da tabela TEMP serão
> > descartadas. Se você quiser manter os dados até você se desconectar da
> > instância faça como no exemplo abaixo:
> > Ex: CREATE GLOBAL TEMPORARY TABLE temp (id NUMBER, nome VARCHAR2(30)) ON
> > COMMIT PRESERVE ROWS;
> >
> > Vale ressaltar que as outras sessões não conseguem "enxergar" as
> > linhas que
> > estão na tabela TEMP. Não existe concorrência por lock e as alterações
> > impostas aos dados desta tabela não geram log.
> >
> > Att,
> > Wellerson
> >
> > "Não vou deixar me embrutecer, eu acredito nos meus ideais. Podem até
> > maltratar o meu coração, que meu espírito ninguém vai conseguir
> > quebrar..."
> > (Legião Urbana)
> >
> > "As idéias estão no chão, você tropeça e acha a solução..."
> > (Titãs)
> >
> > ________________________________
> > De: José Costacurta <[EMAIL PROTECTED]
> > <mailto:jose_costacurta%40yahoo.com.br<jose_costacurta%2540yahoo.com.br>
> >
> > <mailto:jose_costacurta%40yahoo.com.br<jose_costacurta%2540yahoo.com.br>>
> >
> > Para: oracle_br@yahoogrupos.com.br
> > <mailto:oracle_br%40yahoogrupos.com.br<oracle_br%2540yahoogrupos.com.br>
> >
> > <mailto:oracle_br%40yahoogrupos.com.br<oracle_br%2540yahoogrupos.com.br>>
> ;
> > [EMAIL PROTECTED] 
> > <mailto:OraOracle%40yahoogrupos.com.br<OraOracle%2540yahoogrupos.com.br>
> >
> > <mailto:OraOracle%40yahoogrupos.com.br<OraOracle%2540yahoogrupos.com.br>
> >
> > Enviadas: Sexta-feira, 14 de Novembro de 2008 9:36:06
> > Assunto: [oracle_br] Tabela temporária
> >
> > Bom dia gente.
> >
> > Gostaria de saber se existe algum método de criar "tabelas virtuais" em
> > tempo de execução de uma procedure, ou seja, uma tabela que não seja
> > criada
> > fisicamente (somente em memória) e ao término da procedure, ela "suma".
> >
> > O problema é que preciso fazer um monte de processamento durante uma
> > procedure e guardar os resultados para depois poder fazer um select nesse
> > resultado agrupando e somando valores.
> >
> > Se alguém souber e puder me ajudar eu agradeço.
> >
> > Abraço.
> >
> > José Costacurta.
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > Veja quais são os assuntos do momento no Yahoo! +Buscados
> > http://br.maisbuscados.yahoo.com <http://br.maisbuscados.yahoo.com>
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>
>
> ------------------------------------
>
>
> --------------------------------------------------------------------------------------------------------------------------
> >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> inteira responsabilidade de seus remetentes.
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
>
> --------------------------------------------------------------------------------------------------------------------------
> >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure
> » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
> http://www.oraclebr.com.br/
> ------------------------------------------------------------------------------------------------------------------------
> Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a