[oracle_br] Tabela temporária

2020-01-23 Por tôpico Clodoaldo Vilela clodoaldovil...@yahoo.com.br [oracle_br]
Alguém tem um exemplo de criação e manipulação de tabela temporária dentro de 
uma procedure?

Re: [oracle_br] Tabela temporária

2008-11-20 Por tôpico Leonardo Rezende
Existe o conceito de tabela temporária onde os registros são temporários 
e não a estrutura da tabela em si. Esses registros podem ser 
persistentes durante uma sessão ou durante uma transação. Procure por 
CREATE GLOBAL TEMPORARY TABLE nas documentações da Oracle...

Eduardo escreveu:
>
> Faça uma trigger de logon.
> E outra de logoff.
>
> 2008/11/20 francisco porfirio <[EMAIL PROTECTED] 
> >
>
> > Pessoal...
> >
> > Gostaria de saber se no oracle existe o conceito de tabelas 
> temporárias por
> > session, ou seja: assim que um usuário se autenticar automaticamente 
> essa
> > tabela é criada e quando a sessão é encerrada automaticamente a tabela é
> > eliminada.
> >
> > --
> > Atenciosamente
> > Francisco Porfirio Ribeiro Neto
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  



Res: [oracle_br] Tabela temporária

2008-11-20 Por tôpico Wellerson Leite de Araújo
Francisco,

No Oracle a tabela temporária é um pouco diferente. A tabela é criada uma única 
vez como temporária, após isso, o que é descartado no logoff são os dados. 
Desta maneira dentro do seu programa você só precisa referenciar a tabela, 
inserindo dados, alterando, selecionando e removendo. Quando o usuário se 
desconectar estes são descartados. E cada conexão "enxerga" somente os dados 
inseridos e alterados por ela. Pode-se criar índices nestas tabelas também.
Acredito que esta seja uma solução melhor que a criação da tabela no login e 
remoção no logoff, até porque para cada conexão o nome gerado deve ser 
diferente (se a tabela for ser criada no mesmo esquema). 
Utilize a seguinte sintaxe para criar esta tabela:
CREATE GLOBAL TEMPORARY TABLE  () ON COMMIT 
PRESERVE ROWS;

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: Eduardo <[EMAIL PROTECTED]>
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quinta-feira, 20 de Novembro de 2008 10:03:36
Assunto: Re: [oracle_br] Tabela temporária


Faça uma trigger de logon.
E outra de logoff.

2008/11/20 francisco porfirio 

>   Pessoal...
>
> Gostaria de saber se no oracle existe o conceito de tabelas temporárias por
> session, ou seja: assim que um usuário se autenticar automaticamente essa
> tabela é criada e quando a sessão é encerrada automaticamente a tabela é
> eliminada.
>
> --
> Atenciosamente
> Francisco Porfirio Ribeiro Neto
>
> [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]



Re: [oracle_br] Tabela temporária

2008-11-20 Por tôpico Eduardo
Faça uma trigger de logon.
E outra de logoff.

2008/11/20 francisco porfirio <[EMAIL PROTECTED]>

>   Pessoal...
>
> Gostaria de saber se no oracle existe o conceito de tabelas temporárias por
> session, ou seja: assim que um usuário se autenticar automaticamente essa
> tabela é criada e quando a sessão é encerrada automaticamente a tabela é
> eliminada.
>
> --
> Atenciosamente
> Francisco Porfirio Ribeiro Neto
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



[oracle_br] Tabela temporária

2008-11-20 Por tôpico francisco porfirio
Pessoal...

Gostaria de saber se no oracle existe o conceito de tabelas temporárias por
session, ou seja: assim que um usuário se autenticar automaticamente essa
tabela é criada e quando a sessão é encerrada automaticamente a tabela é
eliminada.

-- 
Atenciosamente
Francisco Porfirio Ribeiro Neto


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



Res: RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Wellerson Leite de Araújo
Douglas,

Em tabelas temporárias não é possível nem mesmo com a cláusula ONLINE. Isso 
acontece porque as tabelas temporárias possuem 1 "fragmento" para cada sessão 
que necessita utilizá-las. Desta maneira o Oracle, ainda, não possui uma 
estrutura de dados suficientemente eficiente para replicar a criação de um 
índice por todos estes "fragmentos" (a volatilidade de uma tabela temporária é 
muito grande). Agora, como toda regra tem excessão, vamos à excessão 
(excessão?!?!?!). Caso o único fragmento que esteja sendo utilizado por esta 
tabela for o da sessão que está querendo criar o índice, e a tabela foi criada 
com a opção ON COMMIT DELETE ROWS (este é o default), aí pode. Só que neste 
caso as linhas desta tabela são descartadas (lembre-se que os comandos DDLs 
possuem um COMMIT implícito). Na verdade, todo o "fragmento" que você estava 
utilizando é descartado, ou seja,  não existe nenhum "fragmento" da tabela em 
uso e o índice pode
 ser criado. Por isso, esta particularidade pode nem ser considerada uma 
excessã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: Douglas Ortiz <[EMAIL PROTECTED]>
Para: oracle_br@yahoogrupos.com.br; Wellerson Leite de Araújo <[EMAIL 
PROTECTED]>
Enviadas: Sexta-feira, 14 de Novembro de 2008 13:30:21
Assunto: RE: RES: RES: [oracle_br] Tabela temporária


Wellerson, pode criar o ÍNDICE ONLINE.

Douglas Ortiz

Core Competence Center - PostPaid

* [EMAIL PROTECTED] com.br

*: +55 11 8523-6143 

*: +55 11 2113-6391

 _ _ __

From: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] On 
Behalf Of Wellerson Leite de Araújo
Sent: sexta-feira, 14 de novembro de 2008 14:30
To: [EMAIL PROTECTED] os.com.br
Subject: Res: RES: RES: [oracle_br] Tabela temporária

Carlos,

É isso mesmo: CREATE INDEX  ON  (); . 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 mailto:carlos. martello% 
40choice. com.br> >
Para: [EMAIL PROTECTED] os.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:oracle_ [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 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 a

RE: RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Douglas Ortiz
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  ON  (); . 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 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> 
>  [mailto:
> [EMAIL PROTECTED] os.com.br <mailto:oracle_ br%40yahoogrupos .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> 
> 
> 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 mailto:jose_ 
> costacurta% 40yahoo.com. br> 
> <mailto:jose_ costacurta% 40yahoo.com. br  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%40yahoogr upos.com. br >
>  [

Res: RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Wellerson Leite de Araújo
Carlos,

É isso mesmo: CREATE INDEX  ON  (); . 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]>
Para: oracle_br@yahoogrupos.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 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>  
>  [mailto:
> [EMAIL PROTECTED] os.com.br <mailto:oracle_ br%40yahoogrupos .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>  
> 
> 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 mailto:jose_ 
> costacurta% 40yahoo.com. br> 
> <mailto:jose_ costacurta% 40yahoo.com. br  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%40yahoogr upos.com. br >
>  [mailto:
> > [EMAIL PROTECTED] os.com.br <mailto:oracle_ br%40yahoogrupos .com.br>  
> >   oracle_br%40yahoogr upos.com. br >
> ] Em
> > nome de Robert Anderson
> > Enviada em: sexta-feira, 14 de novembro de 2008 10:02
> >
> > Para: [EMAIL PROTECTED] os.com.br <mailto:oracle_ br%40yahoogrupos .com.br> 
> >   oracle_br%40yahoogr upos.com. br >
> 
> > Assunto: Re: RES: [oracle_br] Tabela temporária
> >
> > Em seu caso, usaria uma T

RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Carlos martello
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: [EMAIL PROTECTED]

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Robert 
Anderson
Enviada em: sexta-feira, 14 de novembro de 2008 10:36
Para: oracle_br@yahoogrupos.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 <[EMAIL PROTECTED] 
<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: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
>  [mailto:
> oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> ] Em
> nome de Robert Anderson
> Enviada em: sexta-feira, 14 de novembro de 2008 10:21
> Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.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> 
> <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  IS TABLE OF  INDEX BY  > chave>;
> >
> > ou vetor:
> >
> > TYPE  IS VARRAY  OF ;
> >
> > Você pode fazer algo do tipo:
> >
> > select coluna bulk collect into 
> > from tabela;
> >
> > Fica muito simples e extremamente eficiente.
> >
> > Até mais,
> >
> > Robert
> >
> > 2008/11/14 Leonardo Rezende <[EMAIL PROTECTED] 
> > <mailto:yahoo%40lrezende.eti.br> 
> <mailto:yahoo%40lrezende.eti.br >  40lrezende.eti.br>
> > <mailto:yahoo%40lrezende.eti.br   2540lrezende.eti.br>> >
> >
> > > Podes tentar com o EXECUTE IMMEDIATE...
> > >
> > > José Costacurta escreveu

Re: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Robert Anderson
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 <[EMAIL PROTECTED]>

>   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:
> oracle_br@yahoogrupos.com.br ] 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  oracle_br%40yahoogrupos.com.br >
>  [mailto:
> > oracle_br@yahoogrupos.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  oracle_br%40yahoogrupos.com.br >
> 
> > Assunto: Re: RES: [oracle_br] Tabela temporária
> >
> > Em seu caso, usaria uma Tabela PL/SQL (Hash)
> >
> > TYPE  IS TABLE OF  INDEX BY  > chave>;
> >
> > ou vetor:
> >
> > TYPE  IS VARRAY  OF ;
> >
> > Você pode fazer algo do tipo:
> >
> > select coluna bulk collect into 
> > from tabela;
> >
> > Fica muito simples e extremamente eficiente.
> >
> > Até mais,
> >
> > Robert
> >
> > 2008/11/14 Leonardo Rezende <[EMAIL PROTECTED]
> <mailto:yahoo%40lrezende.eti.br >  40lrezende.eti.br>
> > <mailto:yahoo%40lrezende.eti.br   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 
> 
> > 
> > > >
> > > > [mailto:oracle_br@yahoogrupos.com.br
> <mailto:oracle_br%40yahoogrupos.com.br >
> 
> > <mailto:oracle_br%40yahoogrupos.com.br 2540yahoogrupos.com.br>>
> >
> > > >
> > <mailto:oracle_br%40yahoogrupos.com.br 2540yahoogrupos.com.br>
> > >]
> > > 

RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico José Costacurta
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>
 [mailto:
> oracle_br@yahoogrupos.com.br <mailto: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>

> Assunto: Re: RES: [oracle_br] Tabela temporária
>
> Em seu caso, usaria uma Tabela PL/SQL (Hash)
>
> TYPE  IS TABLE OF  INDEX BY  chave>;
>
> ou vetor:
>
> TYPE  IS VARRAY  OF ;
>
> Você pode fazer algo do tipo:
>
> select coluna bulk collect into 
> from tabela;
>
> Fica muito simples e extremamente eficiente.
>
> Até mais,
>
> Robert
>
> 2008/11/14 Leonardo Rezende <[EMAIL PROTECTED]
<mailto:yahoo%40lrezende.eti.br> 
> <mailto:yahoo%40lrezende.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
> 
> > >
> > > [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br>  
> <mailto:oracle_br%40yahoogrupos.com.br >
>
> > >
> <mailto:oracle_br%40yahoogrupos.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>  
> <mailto:oracle_br%40yahoogrupos.com.br >
>  > oracle_br%40yahoogrupos.com.br >
>
> > > Assunto: Res: [oracle_br] Tabela temporária
> > >
> > > José,
> > >
> > > Utilize tabelas temporárias. Através do seguinte comando CREATE GLOBAL
> > > TEMPORARY TABLE . 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 e

RES: RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico José Costacurta
Show de bola.

 

Vou fazer isso então.

 

Valeu pela “aula”!

 

Abraço.

 

José Costacurta.

 

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

 

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]
<mailto:jose_costacurta%40yahoo.com.br> >
Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.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 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 . 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 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 é q

Res: RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Wellerson Leite de Araújo
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 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 . 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 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 mensage

Re: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Robert Anderson
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]>

>   Ó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@yahoogrupos.com.br ] Em
> nome de Robert Anderson
> Enviada em: sexta-feira, 14 de novembro de 2008 10:02
>
> Para: oracle_br@yahoogrupos.com.br 
> Assunto: Re: RES: [oracle_br] Tabela temporária
>
> Em seu caso, usaria uma Tabela PL/SQL (Hash)
>
> TYPE  IS TABLE OF  INDEX BY  chave>;
>
> ou vetor:
>
> TYPE  IS VARRAY  OF ;
>
> Você pode fazer algo do tipo:
>
> select coluna bulk collect into 
> from tabela;
>
> Fica muito simples e extremamente eficiente.
>
> Até mais,
>
> Robert
>
> 2008/11/14 Leonardo Rezende <[EMAIL PROTECTED]
> <mailto:yahoo%40lrezende.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  oracle_br%40yahoogrupos.com.br >
>
> > > <mailto:oracle_br%40yahoogrupos.com.br
> 
> > >
> > > [mailto:oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.com.br >
>
> > >
> <mailto:oracle_br%40yahoogrupos.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 >
>
> > > Assunto: Res: [oracle_br] Tabela temporária
> > >
> > > José,
> > >
> > > Utilize tabelas temporárias. Através do seguinte comando CREATE GLOBAL
> > > TEMPORARY TABLE . 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 >
>
> > > <mailto:jose_costacurta%40yahoo.com.br
> 
> > >
> > >
> <mailto:jose_costacurta%40yahoo.com.br 
> >
> > >
> > > Para: oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.com.br >
>
> > > <mailto:oracle_br%40yahoogrupos.com.br
> 
> > >
> > >
> <mailto:oracle_br%40yahoogrupos.com.br 
> >
> > ;
> > > [EMAIL PROTECTED]   OraOracle%40yahoogrupos.com.br >
> <mailto:OraOracle%40yahoogrupos.com.br 
> 
> > >
> > > <mailto:OraOracle%40yahoogrupos.com.br
> 
>
>

RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico José Costacurta
Ó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:[EMAIL PROTECTED] Em
nome de Robert Anderson
Enviada em: sexta-feira, 14 de novembro de 2008 10:02
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: [oracle_br] Tabela temporária

 

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

TYPE  IS TABLE OF  INDEX BY ;

ou vetor:

TYPE  IS VARRAY  OF ;

Você pode fazer algo do tipo:

select coluna bulk collect into 
from tabela;

Fica muito simples e extremamente eficiente.

Até mais,

Robert

2008/11/14 Leonardo Rezende <[EMAIL PROTECTED]
<mailto:yahoo%40lrezende.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>

> > <mailto:oracle_br%40yahoogrupos.com.br
> >
> > [mailto:oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
> >
<mailto:oracle_br%40yahoogrupos.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 >
> > Assunto: Res: [oracle_br] Tabela temporária
> >
> > José,
> >
> > Utilize tabelas temporárias. Através do seguinte comando CREATE GLOBAL
> > TEMPORARY TABLE . 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> 
> > <mailto:jose_costacurta%40yahoo.com.br
> >
> >
<mailto:jose_costacurta%40yahoo.com.br>
> >
> > Para: oracle_br@yahoogrupos.com.br
<mailto:oracle_br%40yahoogrupos.com.br> 
> > <mailto:oracle_br%40yahoogrupos.com.br
> >
> >
<mailto:oracle_br%40yahoogrupos.com.br>
> ;
> > [EMAIL PROTECTED] <mailto:OraOracle%40yahoogrupos.com.br>
<mailto:OraOracle%40yahoogrupos.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.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]
>

Re: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Robert Anderson
Em seu caso, usaria uma Tabela PL/SQL (Hash)

TYPE  IS TABLE OF  INDEX BY ;

ou vetor:

TYPE  IS VARRAY  OF ;

Você pode fazer algo do tipo:

select coluna bulk collect into 
   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
> >
> > [mailto:oracle_br@yahoogrupos.com.br
> > <mailto:oracle_br%40yahoogrupos.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  oracle_br%40yahoogrupos.com.br >
> > Assunto: Res: [oracle_br] Tabela temporária
> >
> > José,
> >
> > Utilize tabelas temporárias. Através do seguinte comando CREATE GLOBAL
> > TEMPORARY TABLE . 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
> >
> > <mailto:jose_costacurta%40yahoo.com.br>
> >
> > Para: oracle_br@yahoogrupos.com.br
> > <mailto:oracle_br%40yahoogrupos.com.br
> >
> > <mailto:oracle_br%40yahoogrupos.com.br>
> ;
> > [EMAIL PROTECTED] 
> > <mailto:OraOracle%40yahoogrupos.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.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]



RES: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico José Costacurta
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: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Wellerson Leite de Araújo
Enviada em: sexta-feira, 14 de novembro de 2008 09:53
Para: oracle_br@yahoogrupos.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 <[EMAIL PROTECTED]
<mailto:jose_costacurta%40yahoo.com.br> >
Para: oracle_br@yahoogrupos.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:[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 . 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 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.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]



Res: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Wellerson Leite de Araújo
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 <[EMAIL PROTECTED]>
Para: oracle_br@yahoogrupos.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:[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 . 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 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.maisbuscados.yahoo.com

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



Re: RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Leonardo Rezende
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> 
> [mailto:oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.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>
> Assunto: Res: [oracle_br] Tabela temporária
>
> José,
>
> Utilize tabelas temporárias. Através do seguinte comando CREATE GLOBAL
> TEMPORARY TABLE . 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>
> <mailto:jose_costacurta%40yahoo.com.br> >
> Para: oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> ;
> [EMAIL PROTECTED] <mailto:OraOracle%40yahoogrupos.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.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

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




RES: [oracle_br] Tabela temporária

2008-11-14 Por tôpico José Costacurta
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:[EMAIL PROTECTED] 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
Assunto: Res: [oracle_br] Tabela temporária

 

José,

Utilize tabelas temporárias. Através do seguinte comando CREATE GLOBAL
TEMPORARY TABLE . 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> >
Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> ;
[EMAIL PROTECTED] <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.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]



Res: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Wellerson Leite de Araújo
José,

Utilize tabelas temporárias. Através do seguinte comando CREATE GLOBAL 
TEMPORARY TABLE . 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]>
Para: oracle_br@yahoogrupos.com.br; [EMAIL PROTECTED]
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

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



Res: [oracle_br] Tabela temporária

2008-11-14 Por tôpico Emerson Moreira Rocha
Jose,

Bom dia.

Voce ja tentou utilizar uma tablespace temporaria?
 
Att,
 
Emerson M. Rocha
Mobile:(11) 9511-8753 
E-Mail: [EMAIL PROTECTED]











De: José Costacurta <[EMAIL PROTECTED]>
Para: oracle_br@yahoogrupos.com.br; [EMAIL PROTECTED]
Enviadas: Sexta-feira, 14 de Novembro de 2008 10: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

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



[oracle_br] Tabela temporária

2008-11-14 Por tôpico José Costacurta
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]



[oracle_br] Tabela Temporária

2005-11-24 Por tôpico Márcio Santos \(TTY2000\)
Boa tarde Pessoal,

Versão: Oracle 8i

Tenho uma procedure que seleciona dados em uma tabela
temporária (que está preenchida), porém não retorna dados
para a aplicação.

Ouvi dizer que uma procedure não consegue retornar um cursor
preenchido por uma tabela temporária. Isto procede?

Obrigado,
Marcio Moia

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



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [oracle_br] TABELA TEMPORÁRIA...

2005-11-22 Por tôpico Nícolas Santana
Obrigado, deu certo.
  - Original Message - 
  From: Ivan Ricardo Schuster 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, November 22, 2005 11:28 AM
  Subject: RES: [oracle_br] TABELA TEMPORÁRIA...


  Opa! Um exemplo:


  create global temporary table temp
  (
idnumber,
valor varchar2(50)
  )
  on commit delete rows;

  como alternativa, podes alterar para "on commit preserve rows"

  os dados inseridos em uma sessão estarão disponíveis até o final dela.
  Outras sessões não conseguirão ver estes dados. A tabela é temporária, mas é
  mantida no banco, na verdade o que é temporário são os dados.

  Abraço
  Ivan


  -Mensagem original-
  De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
  nome de Nícolas Santana
  Enviada em: terça-feira, 22 de novembro de 2005 10:23
  Para: oracle_br@yahoogrupos.com.br
  Assunto: [oracle_br] TABELA TEMPORÁRIA...

  Bom dia a Todos

  ALGUÉM SABE COMO FAÇO PARA CRIAR UMA TABELA TEMPORÁRIA NO ORACLE 9i?




  Nícolas

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



  
  --
  Atenção! As mensagens deste grupo são de acesso público e de inteira
  responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
  
  --__
  ___
  Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
  Links do Yahoo! Grupos










  
--
  Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
  
--_
  Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 


Yahoo! Grupos, um serviço oferecido por: 
  PUBLICIDADE

   


--
  Links do Yahoo! Grupos

a.. Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
  
b.. Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
  
c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



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



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





RES: [oracle_br] TABELA TEMPORÁRIA...

2005-11-22 Por tôpico Ivan Ricardo Schuster
Opa! Um exemplo:


create global temporary table temp
(
  idnumber,
  valor varchar2(50)
)
on commit delete rows;

como alternativa, podes alterar para "on commit preserve rows"

os dados inseridos em uma sessão estarão disponíveis até o final dela.
Outras sessões não conseguirão ver estes dados. A tabela é temporária, mas é
mantida no banco, na verdade o que é temporário são os dados.

Abraço
Ivan


-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Nícolas Santana
Enviada em: terça-feira, 22 de novembro de 2005 10:23
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] TABELA TEMPORÁRIA...

Bom dia a Todos

ALGUÉM SABE COMO FAÇO PARA CRIAR UMA TABELA TEMPORÁRIA NO ORACLE 9i?




Nícolas

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




--
Atenção! As mensagens deste grupo são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 

--__
___
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos




 





--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[oracle_br] TABELA TEMPORÁRIA...

2005-11-22 Por tôpico Nícolas Santana
Bom dia a Todos

ALGUÉM SABE COMO FAÇO PARA CRIAR UMA TABELA TEMPORÁRIA NO ORACLE 9i?




Nícolas

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



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html