Re: RES: [oracle_br] Descarte na constraint

2009-11-10 Por tôpico jlchiappa
Na verdade tem SIM, se for banco 10gr2 ou superior, foi uma das grandes 
mudanças nesse release, o DML Error Logging, veja 
http://www.oracle-base.com/articles/10g/DmlErrorLogging_10gR2.php : a vantagem 
dele é que ele trabalha com instruções SQLs diretamente (ie, é um adicional a 
comandos como INSERT, UPDATE, MERGE, DELETE)  De modo geral, um SQL "puro", 
direto, vai ser mais performático do que um SQL com chamadas PL/SQL 
(principalmente por causa de context switches e quetais)... Se for banco 
inferior ao 10gr2, além da opção de mixar SQL com PL/SQL, sempre há a velha (e 
RUIM na maioria dos casos) opção de se abrir um CURSOR , LOGICAMENTE com bulk 
processing, 
http://www.oracle.com/technology/oramag/oracle/09-mar/o29plsql.html?_template=/ocom/print
 mostra como.

 []s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, "Alexandre Rocha Placido" 
 escreveu
>
> Descartar acho que não tem não.
> 
>  
> 
> Voce teria que fazer os inserts um a um e aí os que estivessem duplicados
> nessa chave seriam rejeitados.
> 
>  
> 
> Caso contrário você vai ter que usar o bom e velho select com uma função de
> grupo para identificar antes os que estão duplicados e aí elimina-los na
> tabela de origem
> 
>  
> 
> Digitalizar0003.jpg
> 
> Alexandre Rocha Placido
> 
> image002DITEC – Divisão de Tecnologia da Informação
> 
> Agrovale
> 
>  
> 
> 74 3612-2900
> 
> 87 8802-0474
> 
> aplac...@...
> 
> MSN: aplac...@...
> 
> Skype: aplac...@...
> 
> P Ler aqui sem imprimir é mais legal e faz bem ao meio ambiente.
> 
>  
> 
> 1 JOÃO 4:10 - Nisto consiste o amor: não em que nós tenhamos amado a Deus,
> mas em que ele nos amou e enviou seu Filho como propiciação pelos nossos
> pecados.
> 
>  
> 
> De: Eduardo Souza [mailto:pjabran...@...] 
> Enviada em: terça-feira, 10 de novembro de 2009 09:54
> Para: oracle_br@yahoogrupos.com.br
> Assunto: [oracle_br] Descarte na constraint
> 
>  
> 
>   
> 
> Olá Grupo!!
> 
> Será que existe uma maneira de descartar registros que violem uma constraint
> do tipo Unique Key?
> 
> A situação é a seguinte: uma tabela está sendo carregada e em um
> determinado registro essa constraint é violada. Eu quero identificar a
> violação e continuar com o processo.
> 
> Grande abraço a todos
> 
> Eduardo Abrantes de Souza.
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




[oracle_br] Re: RAC temporariamente em apenas um node

2009-11-10 Por tôpico jlchiappa
Sim, entendi, MAS eu recomendo enfaticamente que vc providencie o necessário e 
já monte os dois nós de uma vez por causa da maior facilidade : por exemplo, 
uma das coisas mais chatinhas de fazer numa instalação RAC são a equivalência e 
a rede privada, SE vc já tem duas máquinas vc já ** TESTARIA ** na real, já na 
hora do setup, esses detalhes de rede ( ** o próprio ** procedimento de 
instalação já dispara uns assistentes pra isso), é BEM mais fácil imho - em não 
tendo vc vai ter mito mais trabalho depois pra configurar isso com o 
software já instalado na máquina 1... Como eu disse, nunca fiz mas possível 
claro que deve ser, mas ** absolutamente ** não vale o trabalho e o riscos 
decorrentes da cobnfig mais "difícil", mais "trabalhosa"...

 []s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Marcelo Medrado  
escreveu
>
> Grande Chiappa,
> 
> Na verdade, trata-se de uma migração de ambiente em dois passos distintos:
> 
> Tenho dois servidores para montar o RAC mas apenas um está disponível para
> configuração inicial. O objetivo e criar o ambiente RAC com um único nó,
> migrar os dados do segundo servidor para a instância recém e preparar este
> segundo servidor como segundo nó do RAC.
> 
> Abraços,
> 
> Marcelo Medrado
> 
> 2009/11/7 jlchiappa 
> 
> >
> >
> > Sim, colega, eu nunca fiz mas conceitualmente é PERFEITAMENTE possível : o
> > que vc obterá com isso é o mesmo ambiente de um RAC de dois nós quando um
> > cai, ie, um só nó ativo, isso é TOTALMENTE 'legal' para o RAC, ele NÂO TEM
> > uma exigência de número mínimo de nós... afaik quando vc pede pra instalar
> > um RAC o Assistente pede pra vc informar a lista dos nós, afaik vc poderia
> > informar um só...
> > Sendo assim, creio que vc não teria problemas, DESDE QUE as exigências do
> > RAC sejam atendidas, ie : o banco de dados  TEM QUE  ter sido criado
> > num storage COMPARTILHADO, que ** haja espaço ** num storage COMPARTILHADO
> > para voting disk/arqs de controle gerais do RAC, que haja rsh/comunicação de
> > rede setada, que haja IP virtual criado
> >
> > ===> EVIDENTEMENTE, estou respondendo o que vc perguntou, mas : pelo que
> > entendo vc quer fazer um TESTE (de performance, escalabilidade/aceitação) na
> > tecnologia RAC, correto ? Sendo isso, imho ** DE FORMA ALGUMA ** um database
> > RAC com um nó só vai servir de teste minimamente confiável, pois NÂO estará
> > havendo aquilo que muitas vezes é o calcanhar de Aquiles do RAC, a
> > INTERCOMUNICAÇÃO entre os nós Então pra mim se vc quer fazer um Teste **
> > PRECISO **, teste a realidade, com vários nós, com comunicação de Rede entre
> > eles, como vai ser na prática, um database com vários nós, não um Ficção, ok
> > ?
> >
> > []s
> >
> > Chiappa
> >
> > --- Em oracle_br@yahoogrupos.com.br ,
> > Marcelo Medrado  escreveu
> >
> > >
> > > Prezados,
> > >
> > > É possível configurar o RAC com apenas um nó? A situação é a seguinte:
> > >
> > > Tenho um ambiente de produção Standalone numa PowerPC com AIX e uma
> > máquina
> > > nova, idêntica. O objetivo seria criar toda a estrutura do RAC no novo
> > > servidor (apenas com um nó + ASM e tudo mais), migrar o ambiente aos
> > poucos
> > > (alguns schemas podem ser copiados de imediato, outros precisariam ser
> > > homologados) e após transferirmos tudo para o novo ambiente, preparar o
> > > segundo nó e adicioná-lo ao RAC.
> > >
> > > Alguém já passou por esta experiência? É viável/fácil/complexo? Creio que
> > > cenários desta natureza não sejam tão incomuns pois nem sempre possuímos
> > > duas máquinas novas para iniciar o ambiente do zero.
> > >
> > > Se alguém puder me indicar também uma documentação específica sobre este
> > > cenário seria excelente.
> > >
> > > Abraços,
> > >
> > > Marcelo
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> >
> >  
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




[oracle_br] Sandro Gazoni wants to stay in touch on LinkedIn

2009-11-10 Por tôpico Sandro Gazoni
LinkedIn


Sandro Gazoni requested to add you as a connection on LinkedIn:
--

Carmine Andre,

I'd like to add you to my professional network on LinkedIn.

- Sandro Gazoni

Accept invitation from Sandro Gazoni
http://www.linkedin.com/e/hWdLbEQovS9WxUla2SAnQ1WHcdNiQNfnEPkab4_YW6T/blk/I1572936802_2/pmpxnSRJrSdvj4R5fnhv9ClRsDgZp6lQs6lzoQ5AomZIpn8_cBYOc3wScPAOdPkNiiZ6pTlmgTpbtiYNe3wQd3cOdjwLrCBxbOYWrSlI/EML_comm_afe/

View invitation from Sandro Gazoni
http://www.linkedin.com/e/hWdLbEQovS9WxUla2SAnQ1WHcdNiQNfnEPkab4_YW6T/blk/I1572936802_2/39vcz0UdzcVczsRckALqnpPbOYWrSlI/svi/
 
--

DID YOU KNOW that LinkedIn can find the answers to your most difficult 
questions? Post those vexing questions on LinkedIn Answers to tap into the 
knowledge of the world's foremost business experts: 
http://www.linkedin.com/e/ask/inv-23/

 
--
(c) 2009, LinkedIn Corporation



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



[oracle_br] Wendel Siota wants to connect on LinkedIn

2009-11-10 Por tôpico Wendel Siota
LinkedIn


Wendel Siota requested to add you as a connection on LinkedIn:
--

Carmine Andre,

I'd like to add you to my professional network on LinkedIn.

- Wendel Siota

Accept invitation from Wendel Siota
http://www.linkedin.com/e/hWdLbEQovS9WxUla2SAnQ1WHcdNiQNfnEPkab4_YW6T/blk/I1572835728_2/pmpxnSRJrSdvj4R5fnhv9ClRsDgZp6lQs6lzoQ5AomZIpn8_cBYUczsRcPwOdPkNiiZBiPhFcThmciYVdzcPdz8OdjwLrCBxbOYWrSlI/EML_comm_afe/

View invitation from Wendel Siota
http://www.linkedin.com/e/hWdLbEQovS9WxUla2SAnQ1WHcdNiQNfnEPkab4_YW6T/blk/I1572835728_2/39ve38TdjcUczsRckALqnpPbOYWrSlI/svi/

--

Why might connecting with Wendel Siota be a good idea?

Have a question? Wendel Siota's network will probably have an answer:
You can use LinkedIn Answers to distribute your professional questions to 
Wendel Siota and your extended network. You can get high-quality answers from 
experienced professionals.

http://www.linkedin.com/e/ash/inv19_ayn/

 
--
(c) 2009, LinkedIn Corporation



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



Re: [oracle_br] Re: RAC temporariamente em apenas um node

2009-11-10 Por tôpico Marcelo Medrado
Grande Chiappa,

Na verdade, trata-se de uma migração de ambiente em dois passos distintos:

Tenho dois servidores para montar o RAC mas apenas um está disponível para
configuração inicial. O objetivo e criar o ambiente RAC com um único nó,
migrar os dados do segundo servidor para a instância recém e preparar este
segundo servidor como segundo nó do RAC.

Abraços,

Marcelo Medrado

2009/11/7 jlchiappa 

>
>
> Sim, colega, eu nunca fiz mas conceitualmente é PERFEITAMENTE possível : o
> que vc obterá com isso é o mesmo ambiente de um RAC de dois nós quando um
> cai, ie, um só nó ativo, isso é TOTALMENTE 'legal' para o RAC, ele NÂO TEM
> uma exigência de número mínimo de nós... afaik quando vc pede pra instalar
> um RAC o Assistente pede pra vc informar a lista dos nós, afaik vc poderia
> informar um só...
> Sendo assim, creio que vc não teria problemas, DESDE QUE as exigências do
> RAC sejam atendidas, ie : o banco de dados  TEM QUE  ter sido criado
> num storage COMPARTILHADO, que ** haja espaço ** num storage COMPARTILHADO
> para voting disk/arqs de controle gerais do RAC, que haja rsh/comunicação de
> rede setada, que haja IP virtual criado
>
> ===> EVIDENTEMENTE, estou respondendo o que vc perguntou, mas : pelo que
> entendo vc quer fazer um TESTE (de performance, escalabilidade/aceitação) na
> tecnologia RAC, correto ? Sendo isso, imho ** DE FORMA ALGUMA ** um database
> RAC com um nó só vai servir de teste minimamente confiável, pois NÂO estará
> havendo aquilo que muitas vezes é o calcanhar de Aquiles do RAC, a
> INTERCOMUNICAÇÃO entre os nós Então pra mim se vc quer fazer um Teste **
> PRECISO **, teste a realidade, com vários nós, com comunicação de Rede entre
> eles, como vai ser na prática, um database com vários nós, não um Ficção, ok
> ?
>
> []s
>
> Chiappa
>
> --- Em oracle_br@yahoogrupos.com.br ,
> Marcelo Medrado  escreveu
>
> >
> > Prezados,
> >
> > É possível configurar o RAC com apenas um nó? A situação é a seguinte:
> >
> > Tenho um ambiente de produção Standalone numa PowerPC com AIX e uma
> máquina
> > nova, idêntica. O objetivo seria criar toda a estrutura do RAC no novo
> > servidor (apenas com um nó + ASM e tudo mais), migrar o ambiente aos
> poucos
> > (alguns schemas podem ser copiados de imediato, outros precisariam ser
> > homologados) e após transferirmos tudo para o novo ambiente, preparar o
> > segundo nó e adicioná-lo ao RAC.
> >
> > Alguém já passou por esta experiência? É viável/fácil/complexo? Creio que
> > cenários desta natureza não sejam tão incomuns pois nem sempre possuímos
> > duas máquinas novas para iniciar o ambiente do zero.
> >
> > Se alguém puder me indicar também uma documentação específica sobre este
> > cenário seria excelente.
> >
> > Abraços,
> >
> > Marcelo
> >
> >
> > [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:
oracle_br-unsubscr...@yahoogrupos.com.br

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




Re: [oracle_br] Descarte na constraint

2009-11-10 Por tôpico Roberto Oshikawa
Oi Eduardo,

Se esse insert estiver num bloco ( BEGIN ) vc pode colocar uma exception
assim vc consegue continuar o processo e ao mesmo tempo identificar os
problemas


Begin

   insert into tabela( ..)
   values ();
exception
When Dup_Val_ON_Ondex then
  dbms_output.put_line( idetificação do registro );
End

2009/11/10 Eduardo Souza 

>
>
> Olá Grupo!!
>
> Será que existe uma maneira de descartar registros que violem uma
> constraint
> do tipo Unique Key?
>
> A situação é a seguinte: uma tabela está sendo carregada e em um
> determinado registro essa constraint é violada. Eu quero identificar a
> violação e continuar com o processo.
>
> Grande abraço a todos
>
> Eduardo Abrantes de Souza.
>
> [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:
oracle_br-unsubscr...@yahoogrupos.com.br

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




RES: [oracle_br] Descarte na constraint

2009-11-10 Por tôpico Alexandre Rocha Placido
Descartar acho que não tem não.

 

Voce teria que fazer os inserts um a um e aí os que estivessem duplicados
nessa chave seriam rejeitados.

 

Caso contrário você vai ter que usar o bom e velho select com uma função de
grupo para identificar antes os que estão duplicados e aí elimina-los na
tabela de origem

 

Digitalizar0003.jpg

Alexandre Rocha Placido

image002DITEC – Divisão de Tecnologia da Informação

Agrovale

 

74 3612-2900

87 8802-0474

aplac...@agrovale.com

MSN: aplac...@gmail.com

Skype: aplac...@gmail.com

P Ler aqui sem imprimir é mais legal e faz bem ao meio ambiente.

 

1 JOÃO 4:10 - Nisto consiste o amor: não em que nós tenhamos amado a Deus,
mas em que ele nos amou e enviou seu Filho como propiciação pelos nossos
pecados.

 

De: Eduardo Souza [mailto:pjabran...@gmail.com] 
Enviada em: terça-feira, 10 de novembro de 2009 09:54
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Descarte na constraint

 

  

Olá Grupo!!

Será que existe uma maneira de descartar registros que violem uma constraint
do tipo Unique Key?

A situação é a seguinte: uma tabela está sendo carregada e em um
determinado registro essa constraint é violada. Eu quero identificar a
violação e continuar com o processo.

Grande abraço a todos

Eduardo Abrantes de Souza.

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





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



Re: [oracle_br] Recuperação de Base

2009-11-10 Por tôpico Fabiano P.
Já tentei várias coisas, mas acho que tem algum arquivo corrompido.

quando tento dar um "alter database open reset'logs;"
da o erro abaixo
*ERRO na linha 1:*
*ORA-01194: o arquivo 1 necessita de mais recuperac?o para ser consisten*
*ORA-01110: 1 do arquivo de dados: 'C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF'*

tentei um recover no datafile
*SQL> recover datafile 'C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF'*
*ORA-00283: sess?o de recuperac?o cancelada devido a erros*
*ORA-01610: deve ser executada a recuperac?o usando a opc?o BACKUP
CONTROLFILE*

já tentei com recover database
*
*
*SQL> recover database using backup controlfile*
*ORA-00279: alterar 23065752 gerado em 11/08/2009 18:30:14 necessario para o
*
*thread 1*
*ORA-00289: sugest?o :*
*
C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_11_10\O1_MF_1_546_
*
*
*
*%U_.ARC*
*ORA-00280: alterar 23065752 para o thread 1 esta na sequencia  #546*
*
*
*
*
*Especificar log: {=nome de arquivo | sugerido | AUTO | CANCEL}*
*auto*
*ORA-00308: n?o e possivel abrir o log*
*
'C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_11_10\O1_MF_1_546
*
*
*
*_%U_.ARC arquivado'*
*ORA-27041: n?o e possivel abrir arquivo*
*OSD-04002: n┐o ┐ poss┐vel abrir arquivo*
*O/S-Error: (OS 2) O sistema n┐o pode encontrar o arquivo especificado.*
*
*
*
*
*ORA-00308: n?o e possivel abrir o log*
*
'C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_11_10\O1_MF_1_546
*
*
*
*_%U_.ARC arquivado'*
*ORA-27041: n?o e possivel abrir arquivo*
*OSD-04002: n┐o ┐ poss┐vel abrir arquivo*
*O/S-Error: (OS 2) O sistema n┐o pode encontrar o arquivo especificado.*

não tenho esses arquivos q ele pede.





2009/11/10 Rodrigo Nascimento 

>
>
> Bom dia, Fabiano,
>
> Não tenho certeza se eu bem entendi o problema, mas acredito que esse
> procedimento deve funcionar:
>
> startup mount
> alter database open resetlogs;
>
> Se a recuperação desses arquivos pegou uma versão de quando o banco estava
> parado (feito com shutdown immediate), provavelmente, somente com esses
> arquivos você conseguirá abrir o banco.
>
> Rodrigo Nascimento
>
> 
> De: Fabiano P. >
> Para: Oracle Grupo 
> 
> >
> Enviadas: Terça-feira, 10 de Novembro de 2009 8:40:30
> Assunto: [oracle_br] Recuperação de Base
>
>
> BOm dia a todos,
>
> Tenho um cliente que tinha Oracle XE instalado no servidor e por um
> "acidente" o responsável pela área de TI acabou formatando a unidade onde
> tinha o Oracle XE, acabamos recuperando quase todos os arquivos, menos os
> Redologfiles.
> Então instalei novamento o Oracle XE, coloquei os datafiles, controlfiles
> no
> lugar correto, mas não consigo abrir o banco devido a falta dos
> redologfiles, existe algum geito de fazer isso sem esses arquivos? E mesmo
> com esses arquivos isso vai funcionar?
>
> Sei que tinha que ter backup mais o responsável pela área de TI só tem um
> muito antigo quer não tem como utilizar.
>
> Obrigado
> --
> Fabiano P.
> Fone: (46) 9113-6731
> E-Mail: fabiano...@gmail. com
>
> [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]
>
>  
>



-- 
Fabiano P.
Fone: (46) 9113-6731
E-Mail: fabiano...@gmail.com


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



[oracle_br] Descarte na constraint

2009-11-10 Por tôpico Eduardo Souza
Olá Grupo!!

Será que existe uma maneira de descartar registros que violem uma constraint
do tipo Unique Key?

A situação é a seguinte:  uma tabela está sendo carregada e em um
determinado registro essa constraint é violada.  Eu quero identificar a
violação e continuar com o processo.

Grande abraço a todos


Eduardo Abrantes de Souza.


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



Res: [oracle_br] Recuperação de Base

2009-11-10 Por tôpico Rodrigo Nascimento
Bom dia, Fabiano,

Não tenho certeza se eu bem entendi o problema, mas acredito que esse 
procedimento deve funcionar:

startup mount
alter database open resetlogs;

Se a recuperação desses arquivos pegou uma versão de quando o banco estava 
parado (feito com shutdown immediate), provavelmente, somente com esses 
arquivos você conseguirá abrir o banco.

Rodrigo Nascimento







De: Fabiano P. 
Para: Oracle Grupo 
Enviadas: Terça-feira, 10 de Novembro de 2009 8:40:30
Assunto: [oracle_br] Recuperação de Base

  
BOm dia a todos,

Tenho um cliente que tinha Oracle XE instalado no servidor e por um
"acidente" o responsável pela área de TI acabou formatando a unidade onde
tinha o Oracle XE, acabamos recuperando quase todos os arquivos, menos os
Redologfiles.
Então instalei novamento o Oracle XE, coloquei os datafiles, controlfiles no
lugar correto, mas não consigo abrir o banco devido a falta dos
redologfiles, existe algum geito de fazer isso sem esses arquivos? E mesmo
com esses arquivos isso vai funcionar?

Sei que tinha que ter backup mais o responsável pela área de TI só tem um
muito antigo quer não tem como utilizar.

Obrigado
-- 
Fabiano P.
Fone: (46) 9113-6731
E-Mail: fabiano...@gmail. com

[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] Dúvida - Procedure

2009-11-10 Por tôpico Roberto Oshikawa
Bom dia, Matheus

Desculpe a demora da resposta ontem não tive tempo de me conectar, mas refiz
a proc q vc estava com problema e as considerações do alexandre estão
corretas, realmente para montar o FOR não dá para utilizar uma tabela que
ainda está sendo criada dinamicamente, agora pergunto, para essa proc vc vai
estar sempre criando essa tabela será que não valeria a pena vc deixa-la
fisicamente criada ? Não sei ao certo o propósito da tabela mas acredito que
deve ser para extrair alguma informação e depois queima-la, em todo o caso
montei a proc para vc como tendo como base a tabela criada ai sim fica mais
fácil para poder trabalhar

Não existe mais a criação da tabela
O truncate limpa a tabela
insere os dados com base na tabela products
O Update é feito com base o RowId do registro

Espero ter ajudado e desculpa pela demora da resposta, qq dúvida pode ir
mandando que vou tentando responder o mais rapido possivel

abraços


CREATE OR REPLACE PROCEDURE prc_updt_ordem_cadastro_prod
IS
v_linha number;
v_com   varchar2(1000);

BEGIN

execute immediate 'truncate TABLE t_ordem_cadastro';
execute immediate 'insert into TABLE t_ordem_cadastro as SELECT rownum
linha, product_id, nome FROM products';

BEGIN

FOR v_linha in (SELECT linha,rowid FROM t_ordem_cadastro FOR UPDATE)
loop

UPDATE products
   SET product_id = v_linha.linha
 WHERE rowid  = v_linha.rowid;
End loop;
COMMIT;

end;
END prc_updt_ordem_cadastro_prod;



2009/11/10 Alexandre Campos Moretti 

>
>
> Ola Roberto,
>
> Bom dia
>
> Realmente a solução não vai funcionar porque a tabela que está sendo criada
> não existe.
>
> Existem duas soluções :
>
> 1) Criar a tabela como temporary table.
>
> 2) Não criar a tabela auxiliar e colocar o select do for em um cursor.
> Veja que você pode dar select na tabela e atualiza-la que o resultado não é
> alterado antes do commit.
>
> De: oracle_br@yahoogrupos.com.br  [mailto:
> oracle_br@yahoogrupos.com.br ] Em
> nome de Matheus Malta
> Enviada em: segunda-feira, 9 de novembro de 2009 17:32
> Para: oracle_br@yahoogrupos.com.br 
> Assunto: Re: [oracle_br] Dúvida - Procedure
>
>
> Olá Roberto, boa tarde!
>
> Obrigado pela ajuda, mas infelizmente não deu certo também...
>
> Segue abaixo os erros informados pelo Oracle:
>
> Erros para PROCEDURE PRC_UPDT_ORDEM_CADASTRO_PROD:
>
> LINE/COL ERROR
>  --
> 15/1 PL/SQL: SQL Statement ignored
> 16/6 PL/SQL: ORA-00942: a tabela ou view não existe
> 24/4 PL/SQL: SQL Statement ignored
> 25/21 PL/SQL: ORA-00904: : identificador inválido
> 25/21 PLS-00364: o uso da variável 'VERIFICA_ORDEM' de índice de loop é
> inválido
>
> 34/4 PL/SQL: Statement ignored
> 34/14 PLS-00364: o uso da variável 'VERIFICA_ORDEM' de índice de loop é
> inválido
>
> Existe alguma sintaxe diferente para fazer um BEGIN dentro do outro, ou
> seja, para criação de sub-blocos?
>
> Seria esse o problema realmente?
>
> Vlw...
>
> Matheus Malta
> - Original Message -
> From: "Roberto Oshikawa" 
>  >
> To:  oracle_br%40yahoogrupos.com.br > >
> Sent: Monday, November 09, 2009 4:54 PM
> Subject: Re: [oracle_br] Dúvida - Procedure
>
> o que está acontecendo é que a declaração do cursor tem que ficar antes do
> BEGIN, como nesse caso vc está criando dinamicamente entao o correto seria
> mudar a forma como vc utiliza o cursor de explicito para implicito, parece
> complicado mas é bem mais fácil, segue no seu exemplo mesmo.
>
> tenta ver dessa forma, vou ficar off por algum tempo, tenta assim se der
> algum erro manda pra mim novamente que tento te ajudar depois das 18:00hs,
> OK ?
>
> CREATE OR REPLACE PROCEDURE prc_updt_ordem_cadastro_prod
> IS
> v_linha number;
> v_com varchar2(1000);
>
> BEGIN
>
> v_com := 'CREATE TABLE t_ordem_cadastro as'||
> 'SELECT rownum linha, product_id, nome '||
> 'FROM products';
>
> EXECUTE IMMEDIATE v_com;
>
> -- aqui fica o esquema do cursor implicito
> -- como o cursor não precisa ser declarado recebe esse nome implicito
> For verifica_ordem in (SELECT linha FROM t_ordem_cadastro FOR UPDATE) loop
> Begin
> UPDATE products SET product_id = v_linha
> WHERE CURRENT OF verifica_ordem;
> exception when orhers then
> dbms_output.put_line(sqlcode || '-' || sqlerrm )
> end;
> EXIT WHEN verifica_ordem%NOTFOUND;
> END LOOP;
>
> COMMIT;
>
> END;
>
> end prc_updt_ordem_cadastro_prod
> /
>
> 2009/11/9 Matheus Malta 
>  >
>
>
> >
> >
> > Olá Roberto, obrigado por sua ajuda...
> >
> > Digitando o comando SHOW ERROR, corrigi alguns erros e a proc foi
> alterada,
> > porém, tah acusando ainda erro na linha de declaração do cursor:
> >
> > CURSOR verifica_ordem IS
> >
> > o erro acusado é:
> >
> > PLS-00103: Encontrado o símbolo "VERIFICA_ORDEM" quando um dos
> > seguintes símbolos era esperado:
> > := . ( @ % ;
> >
> > A proc foi refeita e ficou da seguinte forma:
> >
> >
> > CREATE OR REPLAC

RES: [oracle_br] Dúvida - Procedure

2009-11-10 Por tôpico Alexandre Campos Moretti
Ola Roberto,

 

 Bom dia

 

Realmente a solução não vai funcionar porque a tabela que está sendo criada
não existe.

 

Existem duas soluções :

 

1)  Criar a tabela como temporary table. 

 

2)  Não criar a tabela auxiliar e colocar o select do for em um cursor.
Veja que você pode dar select na tabela e atualiza-la que o resultado não é
alterado antes do commit.

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de Matheus Malta
Enviada em: segunda-feira, 9 de novembro de 2009 17:32
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Dúvida - Procedure

 

  

Olá Roberto, boa tarde!

Obrigado pela ajuda, mas infelizmente não deu certo também...

Segue abaixo os erros informados pelo Oracle:

Erros para PROCEDURE PRC_UPDT_ORDEM_CADASTRO_PROD:

LINE/COL ERROR
 --
15/1 PL/SQL: SQL Statement ignored
16/6 PL/SQL: ORA-00942: a tabela ou view não existe
24/4 PL/SQL: SQL Statement ignored
25/21 PL/SQL: ORA-00904: : identificador inválido
25/21 PLS-00364: o uso da variável 'VERIFICA_ORDEM' de índice de loop é
inválido

34/4 PL/SQL: Statement ignored
34/14 PLS-00364: o uso da variável 'VERIFICA_ORDEM' de índice de loop é
inválido

Existe alguma sintaxe diferente para fazer um BEGIN dentro do outro, ou
seja, para criação de sub-blocos?

Seria esse o problema realmente?

Vlw...

Matheus Malta
- Original Message - 
From: "Roberto Oshikawa" mailto:rcoshikava%40gmail.com> >
To: mailto:oracle_br%40yahoogrupos.com.br> >
Sent: Monday, November 09, 2009 4:54 PM
Subject: Re: [oracle_br] Dúvida - Procedure

o que está acontecendo é que a declaração do cursor tem que ficar antes do
BEGIN, como nesse caso vc está criando dinamicamente entao o correto seria
mudar a forma como vc utiliza o cursor de explicito para implicito, parece
complicado mas é bem mais fácil, segue no seu exemplo mesmo.

tenta ver dessa forma, vou ficar off por algum tempo, tenta assim se der
algum erro manda pra mim novamente que tento te ajudar depois das 18:00hs,
OK ?

CREATE OR REPLACE PROCEDURE prc_updt_ordem_cadastro_prod
IS
v_linha number;
v_com varchar2(1000);

BEGIN

v_com := 'CREATE TABLE t_ordem_cadastro as'||
'SELECT rownum linha, product_id, nome '||
'FROM products';

EXECUTE IMMEDIATE v_com;

-- aqui fica o esquema do cursor implicito
-- como o cursor não precisa ser declarado recebe esse nome implicito
For verifica_ordem in (SELECT linha FROM t_ordem_cadastro FOR UPDATE) loop
Begin
UPDATE products SET product_id = v_linha
WHERE CURRENT OF verifica_ordem;
exception when orhers then
dbms_output.put_line(sqlcode || '-' || sqlerrm )
end;
EXIT WHEN verifica_ordem%NOTFOUND;
END LOOP;

COMMIT;

END;

end prc_updt_ordem_cadastro_prod
/

2009/11/9 Matheus Malta mailto:maltamatheus%40gmail.com> >

>
>
> Olá Roberto, obrigado por sua ajuda...
>
> Digitando o comando SHOW ERROR, corrigi alguns erros e a proc foi
alterada,
> porém, tah acusando ainda erro na linha de declaração do cursor:
>
> CURSOR verifica_ordem IS
>
> o erro acusado é:
>
> PLS-00103: Encontrado o símbolo "VERIFICA_ORDEM" quando um dos
> seguintes símbolos era esperado:
> := . ( @ % ;
>
> A proc foi refeita e ficou da seguinte forma:
>
>
> CREATE OR REPLACE PROCEDURE prc_updt_ordem_cadastro_prod
> IS
> v_linha number;
> v_com varchar2(1000);
>
> BEGIN
>
> v_com := 'CREATE TABLE t_ordem_cadastro as'||
> 'SELECT rownum linha, product_id, nome '||
> 'FROM products';
>
> EXECUTE IMMEDIATE v_com;
>
> CURSOR verifica_ordem IS
>
> SELECT linha
> FROM t_ordem_cadastro FOR UPDATE;
>
> BEGIN
>
> OPEN verifica_ordem;
>
> LOOP
>
> FETCH verifica_ordem into v_linha;
>
> EXIT WHEN verifica_ordem%NOTFOUND;
>
>
> UPDATE products SET product_id = v_linha
> WHERE CURRENT OF verifica_ordem;
>
> END LOOP;
>
> COMMIT;
>
> CLOSE verifica_ordem;
>
> END;
>
> END;
> /
>
> O que poderá ser agora?
>
> Grato!
>
> Matheus Malta
>
> - Original Message -
> From: "Roberto Oshikawa" mailto:rcoshikava%40gmail.com>  >
> To: mailto:oracle_br%40yahoogrupos.com.br>
>
> Sent: Monday, November 09, 2009 4:14 PM
> Subject: Re: [oracle_br] Dúvida - Procedure
>
> O oracle nao te mostra nenhuma mensagem de erro ? ou código do erro ?
>
> depois que vc compilar a proc digite
>
> show error
>
> 2009/11/9 Matheus Malta mailto:maltamatheus%40gmail.com>  
> >
>
> >
> >
> > Galera... Seguinte...
> >
> > Tô tentando desenvolver uma procedure no ambiente do SQLPlus... Mas o
> > problema é que, ao compilar, ela tah acusando erro de compilação... E
não
> > mostra o erro que está ocorrendo, apenas aponta a linha onde o erro está
> > ocorrendo...
> >
> > Fiz alguns testes removendo a linha ou substituindo o comando, mesmo
> assim,
> > ainda não consegui proceder com a compilação...
> >
> > Alguém poderia me ajudar nesse aspecto?
> >
> > Segue abaixo a procedure:
> >
> > CREATE OR REPLACE PROCEDURE prc_updt_ordem_cadastro_prod
> > IS
> > v_linha number;
> > v_com varchar2(1000);
> >
> > BEGIN
> >
> > v_com := 'CRE

[oracle_br] Recuperação de Base

2009-11-10 Por tôpico Fabiano P.
BOm dia a todos,

Tenho um cliente que tinha Oracle XE instalado no servidor e por um
"acidente" o responsável pela área de TI acabou formatando a unidade onde
tinha o Oracle XE, acabamos recuperando quase todos os arquivos, menos os
Redologfiles.
Então instalei novamento o Oracle XE, coloquei os datafiles, controlfiles no
lugar correto, mas não consigo abrir o banco devido a falta dos
redologfiles, existe algum geito de fazer isso sem esses arquivos? E mesmo
com esses arquivos isso vai funcionar?

Sei que tinha que ter backup mais o responsável pela área de TI só tem um
muito antigo quer não tem como utilizar.

Obrigado
-- 
Fabiano P.
Fone: (46) 9113-6731
E-Mail: fabiano...@gmail.com


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