RES: [oracle_br] Condicional em ORACLE?

2007-07-27 Por tôpico Bruno Lorenzini
DECODE ( condição, se true, condição 2, se true, condição 3, se true, else )

 

SELECT

CASE

  WHEN ( condição ) THEN

 

  WHEN ( condição ) THEN

 

  ELSE

END;

 

 

Sds,

 

  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Guilherme
Enviada em: quinta-feira, 26 de julho de 2007 16:47
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Condicional em ORACLE?

 

obrigado mais gostaria no proprio select... sem utilizar procedures.

no mais vlw pela atençao.

On 7/26/07, Alex Fernando Kirsten alex.kirsten@
mailto:alex.kirsten%40operacionaltextil.com.br operacionaltextil.com.br
wrote:

 if sign(2-1) = 1 then 0

 []'s


 Alex Fernando Kirsten
 Oracle 9i Database Administrator Certified Professional
 Depto. de Tecnologia
 Operacional Têxtil

 - Original Message -
 From: Guilherme
 To: [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br os.com.br
 Sent: Thursday, July 26, 2007 3:50 PM
 Subject: [oracle_br] Condicional em ORACLE?


 Pessoal precisava criar uma condicional em oracle algo simples como

 if(21) 1 else 0

 como faço?

 fiquei sabendo sobre o Sign() e decode() mais nao consigo utiliza-los.

 grato sem mais.

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





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



 Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package »
 Procedure » Scripts » Tutoriais acesse:
 http://www.oraclebr http://www.oraclebr.com.br/codigo/ListaCodigo.php
.com.br/codigo/ListaCodigo.php

 --
 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-
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
archive.com/oracle_br@yahoogrupos.com.br/

 --
 O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
 http://www.oraclebr http://www.oraclebr.com.br/ .com.br/

 --
 Links do Yahoo! Grupos




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

 



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



[oracle_br] JPA e Oracle

2007-07-27 Por tôpico Roberto Amorim
Amigos,
Primeira dificuldade no casamento entre JPA e Oracle.
Quando você cria uma classe no seu projeto, você mapeia toda a estrutura 
de dados na classe. Ao ser iniciado o sistema cria automaticamente a 
tabela no banco de desenvolvimento. No momento em quem estamos prontos 
para validar mais seriamente o sistema, simplismente geramos o script de 
criação das tabelas no próprio banco e passamos para o dba que validará 
tudo e criará o schema no banco de teste/treinamento para as fases 
finais do projeto (correções, otimizações etc.).
O problema é que quando você não define os tamanhos dos campos eles são 
criados com o tamanho que corresponde ao defualt para aquele atributo na 
classe. Assim os campos numéricos são criado como number(38) e strings 
como varchar(255). Você pode definir length, precision e scale através 
das anotações na classe Java. Mas para pk e fk isso não funciona, semrpe 
terão este tamanho. Aí você tem que ajeitar o script não mão antes de 
mandá-lo para o dba. Isso quebra um bocado daquele automatismo que falei 
antes.
Também testei o inverso, criar o esquema e depois usar o Java 
Persistence para criara a classe, na esperança de que ele criasse a 
classe com todas a anotações necessárias. Mas, ele só preenche o básico.
Meu intuito foi passar minhas dificuldades, nem tanto na esperança de 
achar melhores soluções, mas de abrir terreno para quem venha a 
defrontar com isso. Apesar do JPA já não ser a coisa mais nova que tem, 
ele ainda não é utilizado por muita gente, a despeito dos grandes 
benefícios que gera.
um abraço
Roberto



RE: [oracle_br] Livro Oracle9i Para Desenvolvedores

2007-07-27 Por tôpico Silva, Mauricio L.
Oi!

Ontem mesmo uma pessoa do Grupo ligou e comprou o livro!

Obrigado!

Mauricio

 



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of Fabio 
Santos
Sent: Thursday, 26 de July de 2007 23:41
To: oracle_br@yahoogrupos.com.br
Subject: RES: [oracle_br] Livro Oracle9i Para Desenvolvedores

 

quanto?

_ 

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 Silva, Mauricio L.
Enviada em: quinta-feira, 26 de julho de 2007 19:08
Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
Assunto: [oracle_br] Livro Oracle9i Para Desenvolvedores

Boa noite,

Estou vendendo o livro abaixo (publicação esgotada), caso alguém tenha
interesse entrar em 

Contato : [EMAIL PROTECTED] mailto:lachaitis%40hotmail.com com

Obrigado!

Mauricio Lachaitis da Silva

Oracle9i Para Desenvolvedores (Pl/sql - forms - reports - 300 exercícios) 

Autor:

Fernandes, Lúcia

Editora:

Axcel Books

ISBN:

857323170X

Idioma

Portugues

Páginas:

1615

Publicação:

2002

Edição

1

Encadernação:

Capa Dura

Disponibilidade:

Publicação Esgotada 

Peso:

2000.00 gramas

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

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

 



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



[oracle_br] Erro de ORA - Urgente

2007-07-27 Por tôpico cegoncalvesvr
Ola meus amigos,

Utilizando o sistema, no momento de gerar um relatorio, surgiu o 
seguinte erro no sistema:

ORA:01578 - Bloco de dados Oracle danificado (arquivo numero.13, 
bloco num.845288). ORA:01110-13 do arquivo de 
dados: 'E\Oracle\Oradata\cssj\MV2000_I.DBF - (Tablespace)

Fui no servidor e abri o arquivo alert, o erro esta abaixo:
Corrupt block relative dba: 0x034ce5e8 (file 13, block 845288)
Bad check value found during buffer read
Data in bad block -
 type: 6 format: 2 rdba: 0x034ce5e8
 last change scn: 0x.057a7f29 seq: 0x2 flg: 0x04
 consistency value in tail: 0x7f290602
 check value in block header: 0xdea1, computed block checksum: 0x1000
 spare1: 0x0, spare2: 0x0, spare3: 0x0
***
Reread of rdba: 0x034ce5e8 (file 13, block 845288) found same 
corrupted data

- O erro é no disco, certo?
Tem alguma forma de corrigir este problema?
Isolar a area defeituosa?

Aguardo.
Obrigado a todos.



[oracle_br] Re: Wait Lock Session - Problema

2007-07-27 Por tôpico alexandro_assencao
Olá Chiappa !!!

Então o problema foi resolvido, o mesmo estava na aplicação mesmo.
Após geração do plano de execução da transação que estava efetuando um
lock demorado no banco, os responsáveis pela aplicação identificaram
que o problema esta em uma trigger que segundo eles esta trigger
efetuava um select e insert em uma outra tabela, porém para cada
registro retornado era um table scan.
Assim que eles desabilitaram esta trigger, o processo que executava em
1:15 (Uma hora e quinze minutos), passou a executar em 10 minutos.
Assim eles trabalharam na melhoria da trigger onde o processo todo
passou a executar em 15 minutos.

Conclusão Lock: Este processo estava demorando consequentemente o
usuário achava que sua máquina havia travado, portanto cancelava o
processo e executava novamente, no entanto a primeira transação
continuava em execução e as demais em Wait.

Ah. Eu já tenho alguns scripts que me mostram os locks/Waits no banco
de dados, mas se vc puder me passar outros scripts para que eu possa
analisar, eu agradeço.

Agradeço a vc e todos que participaram desta discução.

t+
Alexandro



[oracle_br] chamar aplicação a partir do sqlplus

2007-07-27 Por tôpico Pablo Quadros
Olá Srs.!

Como eu faria pra chamar 1 aplicativo local da maquina via worksheet ou 
sqlplus?
[]'s

-- 

Pablo Quadros
Consultor de TI (Rede / Banco de dados)
msn/gtalk: [EMAIL PROTECTED]



Re: [oracle_br] chamar aplicação a partir do sqlplus

2007-07-27 Por tôpico Gustavo Venturini de Lima
o comando host do sqlplus permite que seja executado comandos do SO
Tente aí...

Em 27/07/07, Pablo Quadros [EMAIL PROTECTED] escreveu:

   Olá Srs.!

 Como eu faria pra chamar 1 aplicativo local da maquina via worksheet ou
 sqlplus?
 []'s

 --

 Pablo Quadros
 Consultor de TI (Rede / Banco de dados)
 msn/gtalk: [EMAIL PROTECTED] pquadros%40gmail.com

  



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



[oracle_br] Re: Erro de ORA - Urgente

2007-07-27 Por tôpico jlchiappa
- O erro é no disco, certo?

PODE SER, como pode não ser : como já dito algumas vezes aqui, 
necessariamente durante a operação do banco Oracle os blocos ** são 
** carregados pra RAM e lá permanecem um tempo, mesmo depois dum 
COMMIT, certamente um pente de memória ruim ** PODE SIM SENHOR ** 
corromper um bloco Da mesma forma bugs podem causar isso, seja no 
SO, seja no próprio banco, seja em drivers/utilitários/aplicativos de 
SO (como softwares de storage, por exemplo)... E finalmente, 
tranquilamente ERROS DE OPERAÇÂO podem causar corrupção, como por 
exemplo recover de banco após uma operação NOLOGGING, um operador 
querendo (via utilitário do sistema, como antivírus ou soft de backup 
não-compatíveis) manipular arquivos do banco Oracle com banco 
aberto

Tem alguma forma de corrigir este problema?

Sem dúvida, o procedimento será : 

a. para emergencialmente se livrar da condição de erro, é localizar o 
segmento e o extent localizados no bloco corrupto (consultando a 
DBA_EXTENTS), feito isso SE o segmento for do tipo que possa ser re-
construído sem perda (como um índice, por exemplo), marque o bloco 
como indisponível via DBMS_REPAIR (cheque os manuais de Admin pra 
sintaxe e modo de usar), e reconstrua o segmento. Caso esse bloco 
seja de um segmento de dados, que vc não pode perder, OU vc faz um 
block recover (se vc tiver backup RMAN atualizado) OU vc marca como 
inusável o bloco, dropa o segmento e volta backup (o procedimento 
exato varia de acordo com a tua política de backup), OU se não tiver 
backup atualizado vc pode tentar fazer um SALVAGE desse segmento , a 
nota Subject: Handling Oracle Block Corruptions in 
Oracle7/8/8i/9i/10g , de Doc ID: Note:28814.1  te lista as opções 
todas citadas.

b. o MAIS IMPORTANTE, depois que vc passou a poder acessar o tal 
dado, vc IMEDIATAMENTE TEM QUE descobrir a causa, senão isso vai se 
repetir DE NOVO, e de NOVO, e DE NOVO. Pra isso, é chamar uma 
Empresa de manutenção de hardware, que vai fazer um check ** PROFUNDO 
** no hardware (ie, discos, RAM, controladora, placa-mãe, etc) do teu 
srevidor, ** levantar ** com o pessoal da Operação o que foi feito 
recentemente nessa máquina, que softs rodaram/foram instalados 
recentemente, E abrir chamado com a Oracle e com o teu Suporte de SO, 
pra ver o caso de bugs.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, cegoncalvesvr 
[EMAIL PROTECTED] escreveu

 Ola meus amigos,
 
 Utilizando o sistema, no momento de gerar um relatorio, surgiu 
o 
 seguinte erro no sistema:
 
 ORA:01578 - Bloco de dados Oracle danificado (arquivo numero.13, 
 bloco num.845288). ORA:01110-13 do arquivo de 
 dados: 'E\Oracle\Oradata\cssj\MV2000_I.DBF - (Tablespace)
 
 Fui no servidor e abri o arquivo alert, o erro esta abaixo:
 Corrupt block relative dba: 0x034ce5e8 (file 13, block 845288)
 Bad check value found during buffer read
 Data in bad block -
  type: 6 format: 2 rdba: 0x034ce5e8
  last change scn: 0x.057a7f29 seq: 0x2 flg: 0x04
  consistency value in tail: 0x7f290602
  check value in block header: 0xdea1, computed block checksum: 
0x1000
  spare1: 0x0, spare2: 0x0, spare3: 0x0
 ***
 Reread of rdba: 0x034ce5e8 (file 13, block 845288) found same 
 corrupted data
 
 - O erro é no disco, certo?
 Tem alguma forma de corrigir este problema?
 Isolar a area defeituosa?
 
 Aguardo.
 Obrigado a todos.





[oracle_br] ler xml no banco - urgente -

2007-07-27 Por tôpico jecacolorado
Olá a todos os mestres...

tenho que ler um arquivo xml e inserir numa tabela tenporaria...
o meu banco é este:

Oracle8i Release 8.1.7.4.1 - Production
PL/SQL Release 8.1.7.3.0 - Production
CORE8.1.7.2.1   Production

Como é no 8i foi instalado um pacote para trabalhar com xml.

crie esta rotininha para testar e ai começaram as dúvidas que estão 
me deixando louco.

rotina
++

declare
 v_doc_textvarchar2(5000);
 v_parser  xmlparser.parser;
 v_doc xmldom.domdocument;
 v_n   xmldom.domnode;
 nnm   xmldom.DOMNamedNodeMap;
 n_l   xmldom.DOMnodelist;
 attrname  varchar2(100);
 attrval   varchar2(100);
 len2  number;
 n xmldom.DOMNode;
 vcLocalNm varchar2(1000);
 sOutput   varchar2(1000);
 
 z xmldom.DOMNode;
begin
 v_doc_text :='?xml version=1.0 encoding=ISO-8859-1 ?
   mensagemTISS 
xmlns=http://www.w3.org/2001/XMLSchema; 
xmlns:ans=http://www.ans.gov.br/padroes/tiss/schemas;
   cabecalho
   identificacaoTransacao
   tipoTransacaoENVIO_LOTE_GUIAS/tipoTransacao
   sequencialTransacao1137/sequencialTransacao
   dataRegistroTransacao2007-06-
17/dataRegistroTransacao
   
horaRegistroTransacao13:19:01/horaRegistroTransacao
   /identificacaoTransacao
   origem
   codigoPrestadorNaOperadora
   CNPJ50984517000130/CNPJ
   /codigoPrestadorNaOperadora
   /origemdestino
   registroANS005711/registroANS
   /destino
   versaoPadrao2.01.02/versaoPadrao
   /cabecalho
   /mensagemTISS';

 v_parser  :=xmlparser.newParser;
 xmlparser.parseBuffer(v_parser,v_doc_text);
 v_doc :=xmlparser.getDocument(v_parser);
 n_l   :=xmldom.getElementsByTagName(v_doc,'*');
 len2  :=xmldom.getlength(n_l);
 

 for i in 0..len2-1 loop
  n:=xmldom.item(n_l,i);

  DBMS_OUTPUT.PUT_line('Nome tag : ' || xmldom.getNodeName(n) 
|| '-' );
  n:=xmldom.getfirstchild(n);
  
  if not xmldom.IsNull(n) and xmldom.getNodeValue(n) is not 
null then 
DBMS_OUTPUT.PUT_line('valor : ' || 
substr(xmldom.getNodeValue(n) ,1,150)|| ' ' ); 
  end if; 

 end loop;
 
 xmlparser.freeParser(v_parser);
 xmldom.freeDocument(v_doc);
end;

retorno 
+++

Nome tag : mensagemTISS-
Nome tag : cabecalho-
Nome tag : identificacaoTransacao-
Nome tag : tipoTransacao-
valor tag : ENVIO_LOTE_GUIAS 
Nome tag : sequencialTransacao-
valor tag : 1137 
Nome tag : dataRegistroTransacao-
valor tag : 2007-06-17 
Nome tag : horaRegistroTransacao-
valor tag : 13:19:01 
Nome tag : origem-
Nome tag : codigoPrestadorNaOperadora-
Nome tag : CNPJ-
valor tag : 50984517000130 
Nome tag : destino-
Nome tag : registroANS-
valor tag : 005711 
Nome tag : versaoPadrao-
valor tag : 2.01.02 


este foi o retorno da minha rorina.este arquivo xml é bem simples
mas vou ter um arquivo bem complexo com n guias...

primeira duvida .
como fazer um controle para saber em qual das guias que estou ?
vou ter tags que se repetem dentro de um mesmo arquivo e como vou 
diferenciar ?

Agradeço a atenção
jeferson



[oracle_br] Comando MERGE

2007-07-27 Por tôpico Jader Resende de Souza - Gestor de Atendimento - Núcleo Relatório Suporte - Engeman EAM
Senhores,
Boa tarde.
 
Estou tentando executar o comando MERGE da seguinte forma:
 
MERGE INTO user_tab2 A
USING (select user_tab1.u_pk_cod, user_tab1.u_desc from user_tab1) B
ON (A.u_pk_cod = B.u_pk_cod)
WHEN MATCHED THEN UPDATE SET A.u_pk_cod = B.u_pk_cod
WHEN NOT MATCHED THEN INSERT (A.u_pk_cod, A.u_desc)
VALUES (B.u_pk_cod, B.u_desc)
 
 
Estou tendo como retorno o seguinte erro:
 
ORA-27432: a etapa não existe para a cadeia .

Alguém sabe me dizer o que pode ser isso?

Jader!
 
 



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: sexta-feira, 27 de julho de 2007 15:22
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Erro de ORA - Urgente



- O erro é no disco, certo?

PODE SER, como pode não ser : como já dito algumas vezes aqui, 
necessariamente durante a operação do banco Oracle os blocos ** são 
** carregados pra RAM e lá permanecem um tempo, mesmo depois dum 
COMMIT, certamente um pente de memória ruim ** PODE SIM SENHOR ** 
corromper um bloco Da mesma forma bugs podem causar isso, seja no 
SO, seja no próprio banco, seja em drivers/utilitários/aplicativos de 
SO (como softwares de storage, por exemplo)... E finalmente, 
tranquilamente ERROS DE OPERAÇÂO podem causar corrupção, como por 
exemplo recover de banco após uma operação NOLOGGING, um operador 
querendo (via utilitário do sistema, como antivírus ou soft de backup 
não-compatíveis) manipular arquivos do banco Oracle com banco 
aberto

Tem alguma forma de corrigir este problema?

Sem dúvida, o procedimento será : 

a. para emergencialmente se livrar da condição de erro, é localizar o 
segmento e o extent localizados no bloco corrupto (consultando a 
DBA_EXTENTS), feito isso SE o segmento for do tipo que possa ser re-
construído sem perda (como um índice, por exemplo), marque o bloco 
como indisponível via DBMS_REPAIR (cheque os manuais de Admin pra 
sintaxe e modo de usar), e reconstrua o segmento. Caso esse bloco 
seja de um segmento de dados, que vc não pode perder, OU vc faz um 
block recover (se vc tiver backup RMAN atualizado) OU vc marca como 
inusável o bloco, dropa o segmento e volta backup (o procedimento 
exato varia de acordo com a tua política de backup), OU se não tiver 
backup atualizado vc pode tentar fazer um SALVAGE desse segmento , a 
nota Subject: Handling Oracle Block Corruptions in 
Oracle7/8/8i/9i/10g , de Doc ID: Note:28814.1 te lista as opções 
todas citadas.

b. o MAIS IMPORTANTE, depois que vc passou a poder acessar o tal 
dado, vc IMEDIATAMENTE TEM QUE descobrir a causa, senão isso vai se 
repetir DE NOVO, e de NOVO, e DE NOVO. Pra isso, é chamar uma 
Empresa de manutenção de hardware, que vai fazer um check ** PROFUNDO 
** no hardware (ie, discos, RAM, controladora, placa-mãe, etc) do teu 
srevidor, ** levantar ** com o pessoal da Operação o que foi feito 
recentemente nessa máquina, que softs rodaram/foram instalados 
recentemente, E abrir chamado com a Oracle e com o teu Suporte de SO, 
pra ver o caso de bugs.

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br ,
cegoncalvesvr 
[EMAIL PROTECTED] escreveu

 Ola meus amigos,
 
 Utilizando o sistema, no momento de gerar um relatorio, surgiu 
o 
 seguinte erro no sistema:
 
 ORA:01578 - Bloco de dados Oracle danificado (arquivo numero.13, 
 bloco num.845288). ORA:01110-13 do arquivo de 
 dados: 'E\Oracle\Oradata\cssj\MV2000_I.DBF - (Tablespace)
 
 Fui no servidor e abri o arquivo alert, o erro esta abaixo:
 Corrupt block relative dba: 0x034ce5e8 (file 13, block 845288)
 Bad check value found during buffer read
 Data in bad block -
 type: 6 format: 2 rdba: 0x034ce5e8
 last change scn: 0x.057a7f29 seq: 0x2 flg: 0x04
 consistency value in tail: 0x7f290602
 check value in block header: 0xdea1, computed block checksum: 
0x1000
 spare1: 0x0, spare2: 0x0, spare3: 0x0
 ***
 Reread of rdba: 0x034ce5e8 (file 13, block 845288) found same 
 corrupted data
 
 - O erro é no disco, certo?
 Tem alguma forma de corrigir este problema?
 Isolar a area defeituosa?
 
 Aguardo.
 Obrigado a todos.




 


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



Re: [oracle_br] Comando MERGE

2007-07-27 Por tôpico Marcio Portes
Jader,

Voce deve estar usando a versão 10.1, que é onde essa mensagem está
desajustada, ora vem do dbms_scheduler, ora do merge.
O problema no seu merge está no update: na medida em que voce tenta alterar
um campo da cláusula ON. Se minha dedução estiver errada, faça um exemplo no
sqlplus copiando e colando para a lista assim como vou fazer a seguir.

ops$marcio:LX10G create table t1 ( pk int primary key, c1 varchar2(10) );

Table created.

ops$marcio:LX10G create table t2 ( pk int primary key, c1 varchar2(10) );

Table created.

ops$marcio:LX10G
ops$marcio:LX10G insert into t1 values ( 1, 'Abacate' );

1 row created.

ops$marcio:LX10G insert into t1 values ( 2, 'Tomate' );

1 row created.

ops$marcio:LX10G
ops$marcio:LX10G insert into t2 values ( 1, 'vai mudar' );

1 row created.

ops$marcio:LX10G
ops$marcio:LX10G
ops$marcio:LX10G select * from t1;

   PK C1
- --
1 Abacate
2 Tomate

2 rows selected.

ops$marcio:LX10G select * from t2;

   PK C1
- --
1 vai mudar

1 row selected.

ops$marcio:LX10G
ops$marcio:LX10G
ops$marcio:LX10G merge into t2 A using (select t1.pk, t1.c1 from t1) B on (
B.pk = A.pk )
  2  when matched then update set A.c1 = B.c1
  3  when not matched then insert ( A.pk, A.c1 ) values ( B.pk, B.c1 )
  4  /

2 rows merged.

ops$marcio:LX10G
ops$marcio:LX10G select * from t1;

   PK C1
- --
1 Abacate
2 Tomate

2 rows selected.

ops$marcio:LX10G select * from t2;

   PK C1
- --
1 Abacate
2 Tomate

2 rows selected.

ops$marcio:LX10G
ops$marcio:LX10G rollback;

Rollback complete.

ops$marcio:LX10G
ops$marcio:LX10G merge into t2 A using (select t1.pk, t1.c1 from t1) B on (
B.pk = A.pk )
  2  when matched then update set A.pk = B.pk
  3  when not matched then insert ( A.pk, A.c1 ) values ( B.pk, B.c1 )
  4  /
merge into t2 A using (select t1.pk, t1.c1 from t1) B on ( B.pk = A.pk )
  *
ERROR at line 1:
ORA-38104: Columns referenced in the ON Clause cannot be updated: A.PK


ops$marcio:LX10G

Veja que eu não consigo reproduzir a sua mensagem de erro já que meu oracle
é o 10.2

abraços,

On 7/27/07, Jader Resende de Souza - Gestor de Atendimento - Núcleo
Relatório Suporte - Engeman EAM [EMAIL PROTECTED] wrote:

   Senhores,
 Boa tarde.

 Estou tentando executar o comando MERGE da seguinte forma:

 MERGE INTO user_tab2 A
 USING (select user_tab1.u_pk_cod, user_tab1.u_desc from user_tab1) B
 ON (A.u_pk_cod = B.u_pk_cod)
 WHEN MATCHED THEN UPDATE SET A.u_pk_cod = B.u_pk_cod
 WHEN NOT MATCHED THEN INSERT (A.u_pk_cod, A.u_desc)
 VALUES (B.u_pk_cod, B.u_desc)


 Estou tendo como retorno o seguinte erro:

 ORA-27432: a etapa não existe para a cadeia .

 Alguém sabe me dizer o que pode ser isso?

 Jader!



 

 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 jlchiappa
 Enviada em: sexta-feira, 27 de julho de 2007 15:22
 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: [oracle_br] Re: Erro de ORA - Urgente

 - O erro é no disco, certo?

 PODE SER, como pode não ser : como já dito algumas vezes aqui,
 necessariamente durante a operação do banco Oracle os blocos ** são
 ** carregados pra RAM e lá permanecem um tempo, mesmo depois dum
 COMMIT, certamente um pente de memória ruim ** PODE SIM SENHOR **
 corromper um bloco Da mesma forma bugs podem causar isso, seja no
 SO, seja no próprio banco, seja em drivers/utilitários/aplicativos de
 SO (como softwares de storage, por exemplo)... E finalmente,
 tranquilamente ERROS DE OPERAÇÂO podem causar corrupção, como por
 exemplo recover de banco após uma operação NOLOGGING, um operador
 querendo (via utilitário do sistema, como antivírus ou soft de backup
 não-compatíveis) manipular arquivos do banco Oracle com banco
 aberto

 Tem alguma forma de corrigir este problema?

 Sem dúvida, o procedimento será :

 a. para emergencialmente se livrar da condição de erro, é localizar o
 segmento e o extent localizados no bloco corrupto (consultando a
 DBA_EXTENTS), feito isso SE o segmento for do tipo que possa ser re-
 construído sem perda (como um índice, por exemplo), marque o bloco
 como indisponível via DBMS_REPAIR (cheque os manuais de Admin pra
 sintaxe e modo de usar), e reconstrua o segmento. Caso esse bloco
 seja de um segmento de dados, que vc não pode perder, OU vc faz um
 block recover (se vc tiver backup RMAN atualizado) OU vc marca como
 inusável o bloco, dropa o segmento e volta backup (o procedimento
 exato varia de acordo com a tua política de backup), OU se não tiver
 backup atualizado vc pode tentar fazer um SALVAGE desse segmento , a
 nota Subject: Handling Oracle Block Corruptions in
 Oracle7/8/8i/9i/10g , de Doc ID: Note:28814.1 te 

[oracle_br] Erro na Criacao de Indice

2007-07-27 Por tôpico cegoncalvesvr
Amigos,

Dropei este indice e estou tentando cria-lo novamente, mas a 
mensagem de erro esta impedindo.
Identifiquei que o erro de bloco era nesse indice pela DBA_EXTENTS.

CREATE INDEX dbamv.itreg_amb_pro_fat_fk_i
 ON dbamv.itreg_amb
  ( cd_pro_fat  )
  PCTFREE10
  INITRANS   2
  MAXTRANS   255
  TABLESPACE mv2000_i
 STORAGE (
   INITIAL   65536
   NEXT
   PCTINCREASE
   MINEXTENTS  1
   MAXEXTENTS  2147483645
  
   )
/

Mensagem do erro abaixo:
  PCTINCREASE
*
ORA-02219: valor inválido da opção de armazenamento NEXT

Alguem pode me ajudar.

Obrigado



Re: [oracle_br] Erro na Criacao de Indice

2007-07-27 Por tôpico Gustavo Venturini de Lima
Cadê o tamanho do next???

Em 27/07/07, cegoncalvesvr [EMAIL PROTECTED] escreveu:

   Amigos,

 Dropei este indice e estou tentando cria-lo novamente, mas a
 mensagem de erro esta impedindo.
 Identifiquei que o erro de bloco era nesse indice pela DBA_EXTENTS.

 CREATE INDEX dbamv.itreg_amb_pro_fat_fk_i
 ON dbamv.itreg_amb
 ( cd_pro_fat )
 PCTFREE 10
 INITRANS 2
 MAXTRANS 255
 TABLESPACE mv2000_i
 STORAGE (
 INITIAL 65536
 NEXT
 PCTINCREASE
 MINEXTENTS 1
 MAXEXTENTS 2147483645

 )
 /

 Mensagem do erro abaixo:
 PCTINCREASE
 *
 ORA-02219: valor inválido da opção de armazenamento NEXT

 Alguem pode me ajudar.

 Obrigado

  



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