Wellerson, pode criar o ÍNDICE ONLINE.
Douglas Ortiz
Core Competence Center - PostPaid
* [EMAIL PROTECTED]
*: +55 11 8523-6143
*: +55 11 2113-6391
From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of
Wellerson Leite de Araújo
Sent: sexta-feira, 14 de novembro de 2008 14:30
To: oracle_br@yahoogrupos.com.br
Subject: Res: RES: RES: [oracle_br] Tabela temporária
Carlos,
É isso mesmo: CREATE INDEX nome ON tabela (coluna); . Só que, como havia
comentado, a tabela não pode estar sendo utilizada Ou seja, crie o índice logo
após a criação da tabela. A performance é, praticamente, a mesma do índice
normal, só que seus dados também são descartados ao final da transação ou da
sessão.
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: Carlos martello [EMAIL PROTECTED] mailto:carlos.martello%40choice.com.br
Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
Enviadas: Sexta-feira, 14 de Novembro de 2008 11:51:17
Assunto: RES: RES: [oracle_br] Tabela temporária
E como criar um índice numa tabela temporária?
Usando create index normalmente, como se fosse em uma tabela física?
E a performance do índice?
Abraços,
Carlos Martello
DBA Oracle / Consultor de Tecnologia
TEL: 55+21+3094-6250
Choice Technologies S/A - Inteligência em Energia
e-mail: carlosmartello@ choice.com. br
De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de
Robert Anderson
Enviada em: sexta-feira, 14 de novembro de 2008 10:36
Para: [EMAIL PROTECTED] os.com.br
Assunto: Re: RES: [oracle_br] Tabela temporária
José, acho que você ainda não pegou o espírito da coisa. :)
Com essa técnica você pode fazer qualquer coisa, tudo é uma questão de
combinar as coisas certas nos lugares certos.
Perguntas que você tem que se fazer:
O que eu quero processar das tabelas? (Provavelmente, vai resolver com
instruções SQL)
O que quero deixar na memória? (Essa informação vai te dizer a estrutura do
registro para armazenamento em memória)
O que quero processar na memória? (Vai guardando no hash baseado no registro
criado no passo anterior)
O que quero fazer com o resultado? (Processo dentro do for, percorrendo a
tabela em memória)
Em todo tempo que trabalho com banco, nunca vi nada que não seja possível
fazer utilizando dessas técnicas. :)
2008/11/14 José Costacurta jose_costacurta@ yahoo.com. br mailto:jose_
costacurta% 40yahoo.com. br
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: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br
oracle_br%40yahoog rupos.com. br [mailto:
[EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br
oracle_br%40yahoog rupos.com. br] Em
nome de Robert Anderson
Enviada em: sexta-feira, 14 de novembro de 2008 10:21
Para: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br
oracle_br%40yahoog rupos.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 jose_costacurta@ yahoo.com. br mailto:jose_
costacurta% 40yahoo.com. br jose_costacurta% 40yahoo.com. br
mailto:jose_ costacurta% 40yahoo.com. br jose_costacurta% 2540yahoo.
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: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br
oracle_br%40yahoog rupos.com. brmailto:
oracle_br%40yahoogr upos.com. br oracle_br%2540yaho ogrupos.com. br
oracle_br%40yahoog rupos.com. br [mailto:
[EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br
oracle_br%40yahoog rupos.com. br mailto:
oracle_br%40yahoogr upos.com. br oracle_br