Então... na verdade eu precisaria fazer o select NO type.

 

Algo do tipo:

 

procedure demo( )
is
TYPE t_rec_demo IS RECORD (num1 number, num2 number);
TYPE t_vet_tar is table of tarifas.valor%type index by binary_integer;
tab t_vet_tar;
begin

select max(coluna1) + 3/2, avg(coluna3) bulk collect into tab
from tabela_demo
order by 1;



--Aqui meu select

For n in (

Select sum(coluna1) soma, coluna2

>From tab

Group by coluna2) loop

--aqui qualquer código

End loop;


end;

 

Entendeu? Pelo menos até agora não descobri nada do tipo pra fazer esse
select. 

 

Valeu! Abraços.

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Robert Anderson
Enviada em: sexta-feira, 14 de novembro de 2008 10:21
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: [oracle_br] Tabela temporária

 

Por que não conseguiria?

Imagine o seguinte:

procedure demo( )
is
TYPE t_rec_demo IS RECORD (num1 number, num2 number);
TYPE t_vet_tar is table of tarifas.valor%type index by binary_integer;
tab t_vet_tar;
begin

select max(coluna1) + 3/2, avg(coluna3) bulk collect into tab
from tabela_demo
order by 1;

for i in tab.first..tab.last loop
dbms_output.put_line(tab(i).num1 || ' ' || tab(i).num2);
end;
end;

Não resolveria o seu problema?

2008/11/14 José Costacurta <[EMAIL PROTECTED]
<mailto:jose_costacurta%40yahoo.com.br> >

> Ótima idéia Robert.
>
> Porém, eu não conseguiria fazer um select nesse type. E é essa minha
> necessidade, fazer um select somando e agrupando valores.
>
> Valeu. Abraço.
>
> De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
<oracle_br%40yahoogrupos.com.br> [mailto:
> oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
<oracle_br%40yahoogrupos.com.br>] Em
> nome de Robert Anderson
> Enviada em: sexta-feira, 14 de novembro de 2008 10:02
>
> Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>
<oracle_br%40yahoogrupos.com.br>
> Assunto: Re: RES: [oracle_br] Tabela temporária
>
> 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]
<mailto:yahoo%40lrezende.eti.br> <yahoo%40lrezende.eti.br>
> <mailto:yahoo%40lrezende.eti.br <yahoo%2540lrezende.eti.br>> >
>
> > 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%40yahoogrupos.com.br><mailto:
> oracle_br%40yahoogrupos.com.br <oracle_br%2540yahoogrupos.com.br>>
>
> > >
<mailto:oracle_br%40yahoogrupos.com.br<oracle_br%2540yahoogrupos.com.br>
> <oracle_br%2540yahoogrupos.com.br>
> > >
> > > [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br>  <oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br <oracle_br%2540yahoogrupos.com.br>>
>
> > >
> <mailto:oracle_br%40yahoogrupos.com.br <oracle_br%2540yahoogrupos.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%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br <oracle_br%2540yahoogrupos.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%40yahoo.com.br>
> <mailto:jose_costacurta%40yahoo.com.br <jose_costacurta%2540yahoo.com.br>>
>
> > >
<mailto:jose_costacurta%40yahoo.com.br<jose_costacurta%2540yahoo.com.br>
> <jose_costacurta%2540yahoo.com.br>
> > >
> > >
> <mailto:jose_costacurta%40yahoo.com.br <jose_costacurta%2540yahoo.com.br>
> <jose_costacurta%2540yahoo.com.br>>
> > >
> > > Para: oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br>  <oracle_br%40yahoogrupos.com.br>
> <mailto:oracle_br%40yahoogrupos.com.br <oracle_br%2540yahoogrupos.com.br>>
>
> > >
<mailto:oracle_br%40yahoogrupos.com.br<oracle_br%2540yahoogrupos.com.br>
> <oracle_br%2540yahoogrupos.com.br>
> > >
> > >
> <mailto:oracle_br%40yahoogrupos.com.br <oracle_br%2540yahoogrupos.com.br>
> <oracle_br%2540yahoogrupos.com.br>>
> > ;
> > > [EMAIL PROTECTED] <mailto:OraOracle%40yahoogrupos.com.br>
<OraOracle%40yahoogrupos.com.br> <mailto:
> OraOracle%40yahoogrupos.com.br <OraOracle%2540yahoogrupos.com.br>>
> <mailto:OraOracle%40yahoogrupos.com.br <OraOracle%2540yahoogrupos.com.br>
> <OraOracle%2540yahoogrupos.com.br>
> > >
> > >
<mailto:OraOracle%40yahoogrupos.com.br<OraOracle%2540yahoogrupos.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]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

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

 



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

Responder a