RES: [oracle_br] Condicional em ORACLE?
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
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
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
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
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
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
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
- 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 -
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
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
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
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]