José,

A diferença é que uma tabela normal deve ser associada a um segmento do tipo 
tabela em alguma tablespace permamente. Uma tabela temporária "salva" seus 
dados na tablespace temporária, com isso você não possui problemas relacionados 
a locks, geração de log, geração de dados de undo, etc.
E o mais bonito da coisa é que você pode criar índices numa tabela temporária 
(bacana demais). A tabela não pode estar sendo usada se for necessário criar 
índices (crie os índices logo após a criação da tabela).

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]>
Para: oracle_br@yahoogrupos.com.br
Enviadas: Sexta-feira, 14 de Novembro de 2008 10:57:22
Assunto: RES: RES: [oracle_br] Tabela temporária


Legal, entendi.

Qual a diferença então entre criar uma tabela desse tipo e criar uma tabela
“de verdade”?

Eu pensei que tabela temporária “sumisse” quando o processo acabasse ou a
sessão.... 

Essa tabela vai ter muitos registros, não seria melhor eu criar uma tabela
de verdade para poder indexá-la?

Valeu.

Abraço.

De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em
nome de Wellerson Leite de Araújo
Enviada em: sexta-feira, 14 de novembro de 2008 09:53
Para: [EMAIL PROTECTED] os.com.br
Assunto: Res: RES: [oracle_br] Tabela temporária

José,

Para criá-la dentro de uma procedure você deve utilizar o comando EXECUTE
IMMEDIATE.
Mas não acho que você deva criar esta tabela numa procedure (não é uma boa
prática de programação). Você pode criá-la (uma vez) e todas as vezes que
você precisar armazenar dados temporários nela, bastaria referenciá-la nos
seus DMLs.

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 <jose_costacurta@ yahoo.com. br
<mailto:jose_ costacurta% 40yahoo.com. br> >
Para: [EMAIL PROTECTED] os.com.br <mailto:oracle_ br%40yahoogrupos .com.br> 
Enviadas: Sexta-feira, 14 de Novembro de 2008 10:31:34
Assunto: RES: [oracle_br] Tabela temporária

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: [EMAIL PROTECTED] os.com.br [mailto:oracle_ [EMAIL PROTECTED] os.com.br] Em
nome de Wellerson Leite de Araújo
Enviada em: sexta-feira, 14 de novembro de 2008 09:22
Para: [EMAIL PROTECTED] os.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 <jose_costacurta@ yahoo.com. br
<mailto:jose_ costacurta% 40yahoo.com. br> >
Para: [EMAIL PROTECTED] os.com.br <mailto:oracle_ br%40yahoogrupos
.com.br> ;
[EMAIL PROTECTED] os.com.br <mailto:OraOracle% 40yahoogrupos. 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.maisbusca dos.yahoo. com

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

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

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbusca dos.yahoo. com

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

[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

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

Responder a