Re: [oracle_br] Erro ORA-04082 ao criar trigger
Bom dia. Modifiquei um pouco e funcionou como esperado. Obrigado a todos: CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE QT_TV8 NUMBER; BEGIN select nvl(sum(qt),0) INTO QT_TV8 from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C') AND CODFILIALRETIRA = :NEW.CODFILIAL ; :NEW.QTFRENTELOJA := QT_TV8; END Atualiza_Saldo_TV8; 2014-02-25 17:34 GMT-03:00 Fabio Prado fbifa...@gmail.com: Eduardo, acrescente FOR EACH ROW após o nome da tabela, como no exemplo abaixo: CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest for each row BEGIN FOR DADOS IN (select nvl(sum(qt),0) from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C')) AND CODFILIALRETIRA = :NEW.CODFILIAL ) LOOP :NEW.QTFRENTELOJA := DADOS.PERICM; END LOOP; END Atualiza_Saldo_TV8; []s Fábio Prado 2014-02-25 17:25 GMT-03:00 Eduardo Perdomo panc...@gmail.com: Boa tarde. Podem me dizer onde estou errando : Só preciso pegaro saldo dos pedidos da consulta e gravar na coluna qtfrenteloja do novo registro: Está dando erro 17:14:21 ORA-04082: NEW or OLD references not allowed in table level triggers CREATE OR REPLACE TRIGGER Atualiza_Saldo_TV8 BEFORE INSERT ON pchistest BEGIN FOR DADOS IN (select nvl(sum(qt),0) from pcpedi where codprod = :NEW.codprod and condvenda = 8 and posicao not in ( 'F', 'C')) AND CODFILIALRETIRA = :NEW.CODFILIAL ) LOOP :NEW.QTFRENTELOJA := DADOS.PERICM; END LOOP; END Atualiza_Saldo_TV8; -- Eduardo Perdomo Consultor de Implantação Grupo PC Sistemas - www.grupopc.com.br (21) 6845-8592 panc...@gmail.com eduardo.perd...@pcinformatica.com.br Blog: eduardo.perdomo.nom.br -- *Fábio Prado* http://www.fabioprado.net/2014/01/oracle-ace-o-que-e-isso.html www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle -- Eduardo Perdomo Consultor de Implantação Grupo PC Sistemas - www.grupopc.com.br (21) 6845-8592 panc...@gmail.com eduardo.perd...@pcinformatica.com.br Blog: eduardo.perdomo.nom.br
Re: [oracle_br] Manual standby database no Oracle standard edition
Uma vez usei esses dois como referência: http://ederferreira.wordpress.com/2007/09/05/oracle-fail-over-standby-database/ http://www.databasejournal.com/features/oracle/article.php/3682421/Manual-Standby-Database-under-Oracle-Standard-Edition.htm Mas faz tempinho... no meu caso, foi pro Oracle 8i. Outros materiais: http://docs.oracle.com/cd/A87860_01/doc/server.817/a76995/standbyc.htm#29765 http://www.pafumi.net/Create_Standby_DB.html Em 25 de fevereiro de 2014 22:30, Clayton Xavier clayton.assis.xav...@gmail.com escreveu: Ola pessoal, Alguem tem um documento que mostre como fazer standby manual? Meu banco não é Enterprise, assim DataGuard nada feito. Info: Oracle 12c / Oracle Linux 6 Clayton Xavier
Re: [oracle_br] Manual standby database no Oracle standard edition
Valeu Milton. Vou dar uma olhada. On Feb 26, 2014 10:20 AM, Milton Bastos Henriquis Jr. miltonbas...@gmail.com wrote: Uma vez usei esses dois como referência: http://ederferreira.wordpress.com/2007/09/05/oracle-fail-over-standby-database/ http://www.databasejournal.com/features/oracle/article.php/3682421/Manual-Standby-Database-under-Oracle-Standard-Edition.htm Mas faz tempinho... no meu caso, foi pro Oracle 8i. Outros materiais: http://docs.oracle.com/cd/A87860_01/doc/server.817/a76995/standbyc.htm#29765 http://www.pafumi.net/Create_Standby_DB.html Em 25 de fevereiro de 2014 22:30, Clayton Xavier clayton.assis.xav...@gmail.com escreveu: Ola pessoal, Alguem tem um documento que mostre como fazer standby manual? Meu banco não é Enterprise, assim DataGuard nada feito. Info: Oracle 12c / Oracle Linux 6 Clayton Xavier
[oracle_br] Versões database vs. Catálogo
Fala galeraa, blz??? Minha dúvida é a seguinte: Tenho um catálogo versão 11.2.0.4 e 12 databases de produção registrados nesse catálogo com a mesma versão, caso haja necessidade da atualização de patch/patchset nos databases de produção, teria algum problema deixar o catálogo na versão 11.2.0.4? Teria algum impacto? Existe algum documento no qual eu possa me basear na compatibilidade digamos assim, entre as versões dos databases registrados e do catálogo de recuperação?
[oracle_br] RE: Versões database vs. Catálogo
Dá um look no manual Oracle® Database Backup and Recovery Reference 11g que vc encontra a entrada RMAN Compatibility Matrix, que cobre isso : no seu caso, já que seus targets são 11gr2, o catálogo pode residir em qquer versão de database acima de 10.2.0.3, então essa versão 11.2.0.4 que vc tem hoje atenderá perfeitamente PORÉM, essa não é o única versionamento a se verificar : o próprio catálogo em si POSSUI uma versão, e essa versão ** TEM ** que ser = a versão do client do RMAN - assim, quando sair o patchset que deixa o seu banco produção em 11.2.0.5, Muito Certamente a versão do client RMAN vai ir para 11.2.0.5, o que vai exigir um upgrade do catálogo Tenha em mente que estamos falando de ** upgrade do catálogo ** , que é feito conectando com o client RMAN no banco de catalog e digitando-se UPGRADE CATALOG : não confunda com upgrade de banco, certo ? Ou mesmo vc pode criar um novo catalogo para atender ao novo release de client RMAN : por exemplo, num cliente recente o pessoal tá testando ainda o patchset 11.2.0.4 (sim, mesmo tanto tempo depois de lançado o pessoal lá não aplicou ainda esse patchset integralmente nas bases 11.2.0.3.x, acredite quem quiser) , então como ainda não tem o resultado final e definitivo da migração , optou-se por não upgradear o catálogo neste momento e ao invés criar um novo catálogo 11.2.0.4 nesse mesmo database 11.2.0.3, veja : [oracle@lnx099 ~]$ sqlplus crmpp/xxx SQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 26 13:49:40 2014 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Automatic Storage Management option crmpp:@rcat:SQLSELECT * FROM rcver; VERSION 11.02.00.04 crmpp:@rcat:SQLexit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Automatic Storage Management option [oracle@lnx099 ~]$ sqlplus rman/xyz SQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 26 13:50:39 2014 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Automatic Storage Management option RMAN:@rcat:SQLSELECT * FROM rcver; VERSION 11.02.00.03 RMAN:@rcat:SQL okdoc ?? Então essa é a sua resposta : a versão do database onde o(s) catálogo(s) RMAN reside(m) pode ficar em 11.2.0.4 sem problema, isso vai atender tranquilamente os seus databases atuais, E no futuro quando vc aplicar patchset nos targets que suba release do client RMAN, vc ou cria um novo catálogo ou (o normal e comum) simplesmente upgradeia o catálogo que vc já tem, mantendo se quiser a versão do database A MESMA, sim ??? Claro que o database aonde o catalog reside é um database Oracle, então certamente o ** IDEAL ** é que os patchsets sejam aplicados nele também, mas isso não é Obrigatório... []s Chiappa
RES: RES: [oracle_br] Regitrar Banco 9i no RMAN 10g
Fabricio, Fiz os testes que voce mencionou, mas algo muito estranho. O RMAN não abre, já viu isso??? $ rman target / catalog rman/rman@rman rman: can't open target ou $ ORACLE_SID=prod $ rman (Fica travado) Conecta no SQLPLUS sem problemas. Grato, Ednilson Silva De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Fabricio Pedroso Jorge Enviada em: terça-feira, 25 de fevereiro de 2014 22:06 Para: oracle_br@yahoogrupos.com.br Assunto: Re: RES: [oracle_br] Regitrar Banco 9i no RMAN 10g Faça esse teste: ### servidor onde as bases 9i estão ### -- configure normalmente as variaveis de ambiente para a base que você quer registrar no catalogo RMAN -- teste se você consegue se comunicar com o servidor onde o catalogo do RMAN está (ping e tnsping) -- se conecte na base e no catalogo RMAN rman target / catalog rman/rman@catalogo -- registrar a base de dados 9i no catalogo do RMAN RMAN REGISTER DATABASE; ### servidor onde o catalogo do RMAN está ### -- valide se a base 9i foi registrada com sucesso -- se conectar a base de dados que serve como catalogo RMAN usando o usuário dono do catalogo (RMAN?) -- veja se a query abaixo retorna a base de dados 9i que você acabou de registrar. SQL SELECT * FROM RC_DATABASE; Em 25 de fevereiro de 2014 17:58, Ednilson Silva ednilson.si...@jbs.com.br escreveu: Rodrigo, Então, na maquina que esta o 10g, criei um base e criei o catalogo, e registrei uma base 10g que tem na propria maquina. Tenho duas bases 9i em outra maquina e gostaria de registrar elas nessa base 10g. Na maquina que esta as duas bases 9i, não tenho o rman configurado. Bom, senão tiver como registrar essas duas bases 9i, irei criar uma base 9i e criar um catalogo para elas. Grato, Ednilson Silva De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Rodrigo Mufalani Enviada em: terça-feira, 25 de fevereiro de 2014 17:51 Para: oracle_br@yahoogrupos.com.br Cc: Ednilson Silva Assunto: Re: RES: [oracle_br] Regitrar Banco 9i no RMAN 10g Meu caro, Do jeito que você passou na sua linha de comando, parece-me que está passando a sintaxe do rman na máquina errada (10g). Se você o fizer na máquina do 9i, aí sim poderá usar o rman target /. Mas eu acho que não será possível usar o rman do 10g para se conectar a um banco 9i e gerar o backup (nunca testei). Faz o seguinte: Vá no 9i, conecta local e ao catalog e registre o bd, depois só fazer backup; --- Atenciosamente, Rodrigo Mufalani Database Consultant +55 XX(21) 3193-0326 tel:%2B55%20XX%2821%29%203193-0326 rodr...@mufalani.com.br www.mufalani.com.br Stop guessing Be Sure Because performance matters Em 25/02/2014 17:05, Ednilson Silva escreveu: Rodrigo, Estou tentando conectar numa base (Oracle 9i) que esta em outro servidor para registrar ela no rman e não estou conseguindo. Uma base que esta no mesmo servidor consegui sem problemas. Fiz um teste conectando no sqlplus nesta base e conecta. $ ORACLE_SID=PROD $ rman target / catalog rman/rman@rman Recovery Manager: Release 10.2.0.4.0 - Production on Tue Feb 25 16:51:01 2014 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database (not started) connected to recovery catalog database Grato, Ednilson Silva De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Rodrigo Mufalani Enviada em: terça-feira, 25 de fevereiro de 2014 15:34 Para: oracle_br@yahoogrupos.com.br Cc: Ednilson Silva Assunto: Re: [oracle_br] Regitrar Banco 9i no RMAN 10g Bom dia, Se não me engano, o mínimo que você consegue colocar é 8i. O 9i funciona de boa!!! --- Atenciosamente, Rodrigo Mufalani Database Consultant +55 XX(21) 3193-0326 tel:%2B55%20XX%2821%29%203193-0326 rodr...@mufalani.com.br www.mufalani.com.br Stop guessing Be Sure Because performance matters Em 25/02/2014 15:33, Ednilson Silva escreveu: Pessoal, Criei um catalogo no rman (Oracle 10g Release 10.2.0.4), e gostaria de saber se consigo registrar bancos 9i? Este Banco 9i, esta em outro servidor. Grato Ednilson Silva -- Fabrício Pedroso Jorge. Administrador de Banco de Dados Oracle 11g Certified SQL Expert Oracle 11g Certified Associate Oracle 11g Certified Professional Linux Professional Institute Certified Level I (LPIC-I) ITIL V3 Foudations certificacaodb.com.br Resumo Profissional: http://br.linkedin.com/in/fabriciojorge http://br.linkedin.com/in/fabriciojorge Contatos: + 55 91 88991116 skype: fabricio.pedroso.jorge mailto:fpjb...@gmail.com fpjb...@gmail.com
Re: [oracle_br] RE: Servidor na Nuvem e Backup's Oracle
Olá Chiappa, Obrigado pelas comentário. Bom neste meu cliente especifico é um cliente pequeno, e acredito que compensa sim para empresa usar o serviço da nuvem, pois acredito que o Data-Center que a RedeHost (não querendo fazer propaganda mas...) tem é incomparavelmente melhor do que qualquer solução de infra que este meu cliente pequeno possa ter. Quanto ao Backup, eu particularmente confio no serviço que se por venturar dar algum crash eles voltam o backup da maquina via Storage, mas não confiou que o Oracle estará consistente. Por isso ainda sim faço backup Rman e Archivelog no próprio servidor da nuvem, para que com eles possa tornar o banco de dados consistente. Além é claro dos arquivos DUMP para trabalhar com a granularidade de objetos. Todavia levando em consideração seu comentário, vou pensar na possibilidade de replicar isso em outro servidor, talvez outro serviço na nuvem, como dizem por ai, o seguro morreu de velho, né. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 25 de Fevereiro de 2014 10:39, jlchia...@yahoo.com.br jlchia...@yahoo.com.br escreveu: Tudo jóia ? Então, primeiro sobre servidores RDBMS Oracle em nuvem : o ponto principal é se a Empresa pode ter Confiança no prestador... Por exemplo, Empresas da área financeira/bancária tipicamente PRECISAM obedecer a requisitos de segurança muita estritos em todas as camadas da infra, mas ESPECIALMENTE em redes, nem sempre todos os provedores vão chegar no nível desejado de controle da infra, nem todos vão fornecer (por exemplo) reports de patching, de auditoria e penetration tests da infra deles, E mesmo que forneçam, é por conta de cada interessado acreditar ou não no que for fornecido A qualidade da mão-de-obra normalmente é outro ponto : se vc tem tudo em casa, vc contrata profissionais que confia, que vai treinar como achar melhor, Enquanto lá no provedor , sabe vc quem está lá (na verdade normalmente até se sabe, é aquele indiano baratinho :) ... Outra coisa é a segurança da informação em si : por mais que o provedor assine contrato de co-responsabilidade, confiar que REALMENTE não está havendo nenhum tipo de sniffing/tampering com teus dados enquanto trafegam na infra-estrutura do teu provedor é bem isso, no fundo uma questão de Confiança... Eu pessoalmente, se analisar os talvez últimos 10 clientes de grande porte com alta exigência de segurança e controle que atendi, todos os 10 mantinham infra própria, Justamente para não haver incerteza absolutamente nenhuma em termos de segurança, de procedimentos, etc Bom, sobre backup penso que é uma questão de confiança : vc Confia que efetivamente o teu provedor vai MESMO ser capaz de retornar a posição exata em caso de crash ? O ponto é que muitos provedores te dão um ambiente genérico, não tem muito conhecimento de RDBMS Oracle, então não é difícil que (por exemplo) a solução de backup online via STORAGE usada exija que o RDBMS estivesse em backup mode , e/ou exija um software adicional (tipo snapview) Então a resposta é : SE na hora de contratar foi verificado que a solução de backup via snapshot/bcv copy/whatever é Garantida com RDBMS Oracle, ok, confia-se... mas sempre eu confio desconfiando, então eu MANTERIA SIM algum tipo de backup extra, OU mesmo algum tipo de replicação/standby para outro servidor , para os databases mais críticos Isso sem contar a questão de restores temporários, às vezes parciais... Digamos : os usuários precisam obter um relatório das vendas do ano passado, que já não estão mais online : se vc tem um backup próprio mantido especificamente para esses casos blz, já se vc só confia no backup do provedor, AINDA que ele abra a possibilidade, backup de storage sempre é grande e complexo de se manipular []s Chiappa
RES: RES: [oracle_br] Regitrar Banco 9i no RMAN 10g
Fabricio, Ignora meu e-mail anterior...rsrsrs Problemas de PATH. Muito obrigado. $ cd $ORACLE_HOME/bin $ ./rman Recovery Manager: Release 9.2.0.8.0 - Production Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved. RMAN connect target / connected to target database: PROD (DBID=2520843487) RMAN connect catalog rman/rman@rman connected to recovery catalog database RMAN register database; database registered in recovery catalog starting full resync of recovery catalog full resync complete Grato, Ednilson Silva De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Fabricio Pedroso Jorge Enviada em: terça-feira, 25 de fevereiro de 2014 22:06 Para: oracle_br@yahoogrupos.com.br Assunto: Re: RES: [oracle_br] Regitrar Banco 9i no RMAN 10g Faça esse teste: ### servidor onde as bases 9i estão ### -- configure normalmente as variaveis de ambiente para a base que você quer registrar no catalogo RMAN -- teste se você consegue se comunicar com o servidor onde o catalogo do RMAN está (ping e tnsping) -- se conecte na base e no catalogo RMAN rman target / catalog rman/rman@catalogo -- registrar a base de dados 9i no catalogo do RMAN RMAN REGISTER DATABASE; ### servidor onde o catalogo do RMAN está ### -- valide se a base 9i foi registrada com sucesso -- se conectar a base de dados que serve como catalogo RMAN usando o usuário dono do catalogo (RMAN?) -- veja se a query abaixo retorna a base de dados 9i que você acabou de registrar. SQL SELECT * FROM RC_DATABASE; Em 25 de fevereiro de 2014 17:58, Ednilson Silva ednilson.si...@jbs.com.br escreveu: Rodrigo, Então, na maquina que esta o 10g, criei um base e criei o catalogo, e registrei uma base 10g que tem na propria maquina. Tenho duas bases 9i em outra maquina e gostaria de registrar elas nessa base 10g. Na maquina que esta as duas bases 9i, não tenho o rman configurado. Bom, senão tiver como registrar essas duas bases 9i, irei criar uma base 9i e criar um catalogo para elas. Grato, Ednilson Silva De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Rodrigo Mufalani Enviada em: terça-feira, 25 de fevereiro de 2014 17:51 Para: oracle_br@yahoogrupos.com.br Cc: Ednilson Silva Assunto: Re: RES: [oracle_br] Regitrar Banco 9i no RMAN 10g Meu caro, Do jeito que você passou na sua linha de comando, parece-me que está passando a sintaxe do rman na máquina errada (10g). Se você o fizer na máquina do 9i, aí sim poderá usar o rman target /. Mas eu acho que não será possível usar o rman do 10g para se conectar a um banco 9i e gerar o backup (nunca testei). Faz o seguinte: Vá no 9i, conecta local e ao catalog e registre o bd, depois só fazer backup; --- Atenciosamente, Rodrigo Mufalani Database Consultant +55 XX(21) 3193-0326 tel:%2B55%20XX%2821%29%203193-0326 rodr...@mufalani.com.br www.mufalani.com.br Stop guessing Be Sure Because performance matters Em 25/02/2014 17:05, Ednilson Silva escreveu: Rodrigo, Estou tentando conectar numa base (Oracle 9i) que esta em outro servidor para registrar ela no rman e não estou conseguindo. Uma base que esta no mesmo servidor consegui sem problemas. Fiz um teste conectando no sqlplus nesta base e conecta. $ ORACLE_SID=PROD $ rman target / catalog rman/rman@rman Recovery Manager: Release 10.2.0.4.0 - Production on Tue Feb 25 16:51:01 2014 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database (not started) connected to recovery catalog database Grato, Ednilson Silva De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Rodrigo Mufalani Enviada em: terça-feira, 25 de fevereiro de 2014 15:34 Para: oracle_br@yahoogrupos.com.br Cc: Ednilson Silva Assunto: Re: [oracle_br] Regitrar Banco 9i no RMAN 10g Bom dia, Se não me engano, o mínimo que você consegue colocar é 8i. O 9i funciona de boa!!! --- Atenciosamente, Rodrigo Mufalani Database Consultant +55 XX(21) 3193-0326 tel:%2B55%20XX%2821%29%203193-0326 rodr...@mufalani.com.br www.mufalani.com.br Stop guessing Be Sure Because performance matters Em 25/02/2014 15:33, Ednilson Silva escreveu: Pessoal, Criei um catalogo no rman (Oracle 10g Release 10.2.0.4), e gostaria de saber se consigo registrar bancos 9i? Este Banco 9i, esta em outro servidor. Grato Ednilson Silva -- Fabrício Pedroso Jorge. Administrador de Banco de Dados Oracle 11g Certified SQL Expert Oracle 11g Certified Associate Oracle 11g Certified Professional Linux Professional Institute Certified Level I (LPIC-I) ITIL V3 Foudations certificacaodb.com.br Resumo Profissional: http://br.linkedin.com/in/fabriciojorge http://br.linkedin.com/in/fabriciojorge Contatos: + 55 91 88991116 skype: fabricio.pedroso.jorge mailto:fpjb...@gmail.com fpjb...@gmail.com
Re: [oracle_br] dúvida na quey
Aí eu pergunto aos senhores. O que é mais eficiente Isso: SELECT SUM(VALOR * DECODE(COD,7,-1,1)) FROM TABELA ou ISSO: SELECT SUM(VALOR) FROM TABELA WHERE COD 7 - SELECT SUM(VALOR) FROM TABELA WHERE COD = 7 Em 25 de fevereiro de 2014 18:59, ederson200...@yahoo.com.br escreveu: Yuri, Taí a prova que estando escrito, pode ser simplificado. Na sua resposta, a primeira opção simplifica a resposta do meu código. Obrigado pelo retorno. Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
Re: [oracle_br] RE: Servidor na Nuvem e Backup's Oracle
Maravilha, colega : uma avaliação ponderada e justa é exatamente o que é necessário - se o seu Cliente se adequa aos senões do cloud, manda brasa sem dúvida... Só um ponto que eu recomendo que vc reforce com ele é a questão da internet, pois os servers estando fora de casa, lá fora num datacenter, passa a ser crítica a disponibilidade ( ** E ** a performance!!) da internet/rede privada/whatever que vai existir entre as facilidades do cliente e o datacenter... É alguma coisa Óbvia, mas facilmente esquecida : já vi (por exemplo) uma implementação de cloud privado cair em ruínas porque ninguém tinha pensado nisso de forma completa - no escritório de SP ok, MAS a planta de fábrica (que precisava acessar dados no database remoto via diversas apps) ficava no meio do nada, não era nem fibra o Sobre o backup, levar em conta também as venetuais necessidades de backup em grande janela/arquivamento de dados : tipicamente qualquer provedor decente te dá alguns dias de recuperabilidade, MAS se o cliente eventualmente tiver necessidades especiais de consultar dados arquivados há longos períodos, soluções de storage Tipicamente não te dão isso Se realmente o Cliente confirmar que não precisa de nada assim, aí ok, sem probs... []s Chiappa
[oracle_br] Chave Estrangeira
Boa tarde pessoal do grupo. Em minha aplicação, quando faço o cadastramento de um equipamento (tabela equipamentos), preciso que nesse momento seja aberta simultaneamente uma ordem de serviço para instalação (tabela OS) e um try-out de verificação (tabela tryout), ate ai fácil. O problema é que a tabela OS tem um campo chamado equipamento que é FK da tabela EQUIPAMENTOS e na aplicação eu faço a inclusão do equipamento, não comito, pego o numero do equipamento que acabei de incluir e tento colocar no campo equipamento da tabela OS, mas na hora de gravar gera um erro de chave estrangeira. Acredito que isso esteja acontecendo porque o registro inserido na tabela equipamento não esta comitado. A pergunta é a seguinte: Realmente eu preciso comitar o registro na primeira tabela pra só depois incluir um registro na segunda? Se esse comportamento for normal alguem tem alguma sugestão de como eu controlo de transação nesse caso, já que se algum dos registros gerar erro eu quero que não grave nada no banco. Obrigado pela atenção. Emerson Sanches Analista de Sistemas
Re: [oracle_br] Chave Estrangeira
Emerson, espero que o pessoal me corrija se eu estiver errado... ACHO, pelo que eu entendo, que essa nova chave inserida só pode ser lida dentro da própria sessão, na mesma transação! Você está fazendo tudo isso na mesma transação? É PL/SQL? Em 26 de fevereiro de 2014 16:55, Emerson Sanches emerson.sanc...@gmail.com escreveu: Boa tarde pessoal do grupo. Em minha aplicação, quando faço o cadastramento de um equipamento (tabela equipamentos), preciso que nesse momento seja aberta simultaneamente uma ordem de serviço para instalação (tabela OS) e um try-out de verificação (tabela tryout), ate ai fácil. O problema é que a tabela OS tem um campo chamado equipamento que é FK da tabela EQUIPAMENTOS e na aplicação eu faço a inclusão do equipamento, não comito, pego o numero do equipamento que acabei de incluir e tento colocar no campo equipamento da tabela OS, mas na hora de gravar gera um erro de chave estrangeira. Acredito que isso esteja acontecendo porque o registro inserido na tabela equipamento não esta comitado. A pergunta é a seguinte: Realmente eu preciso comitar o registro na primeira tabela pra só depois incluir um registro na segunda? Se esse comportamento for normal alguem tem alguma sugestão de como eu controlo de transação nesse caso, já que se algum dos registros gerar erro eu quero que não grave nada no banco. Obrigado pela atenção. Emerson Sanches Analista de Sistemas
Re: [oracle_br] Chave Estrangeira
Milton, obrigado pela resposta, e desculpem minha desatenção. O erro esta gerando em outra tabela.e o erro esta correto, fui eu que nao tinha percebido. Desculpem de novo Obrigado Emerson Sanches Analista de Sistemas Em 26 de fevereiro de 2014 16:58, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Emerson, espero que o pessoal me corrija se eu estiver errado... ACHO, pelo que eu entendo, que essa nova chave inserida só pode ser lida dentro da própria sessão, na mesma transação! Você está fazendo tudo isso na mesma transação? É PL/SQL? Em 26 de fevereiro de 2014 16:55, Emerson Sanches emerson.sanc...@gmail.com escreveu: Boa tarde pessoal do grupo. Em minha aplicação, quando faço o cadastramento de um equipamento (tabela equipamentos), preciso que nesse momento seja aberta simultaneamente uma ordem de serviço para instalação (tabela OS) e um try-out de verificação (tabela tryout), ate ai fácil. O problema é que a tabela OS tem um campo chamado equipamento que é FK da tabela EQUIPAMENTOS e na aplicação eu faço a inclusão do equipamento, não comito, pego o numero do equipamento que acabei de incluir e tento colocar no campo equipamento da tabela OS, mas na hora de gravar gera um erro de chave estrangeira. Acredito que isso esteja acontecendo porque o registro inserido na tabela equipamento não esta comitado. A pergunta é a seguinte: Realmente eu preciso comitar o registro na primeira tabela pra só depois incluir um registro na segunda? Se esse comportamento for normal alguem tem alguma sugestão de como eu controlo de transação nesse caso, já que se algum dos registros gerar erro eu quero que não grave nada no banco. Obrigado pela atenção. Emerson Sanches Analista de Sistemas
[oracle_br] RE: Chave Estrangeira
Tarde... Então, realmente ** ninguém ** consegue consultar informação não-comitada no RDBMS Oracle, isso é um ponto pacífico... No seu caso, as consultas feitas pelo próprio RDBMS para check de integridade, então ** Não ** tem a ver com controle de transação em si... Para esse cenário o que vc PODE fazer é especificar que elas só ocorrerão em tempo de COMMIT, alterando as constraints em questão para o status DEFERRED : veja no manual Oracle Oracle® Database Concepts no cap. 5 - Data Integrity a entrada Deferrable Constraints []s Chiappa OBS : óbvio, isso funciona ** SE ** vc está na mesma transação/mesma sessão o tempo todo no seu programa - se forem transações/sessões diferentes, Claro que não rola
Re: [oracle_br] RE: Chave Estrangeira
Só complementando o texto do Chiappa... pois talvez gere dúvidas... Ninguém **em sessão diferente** consegue consultar informação não-comitada no RDBMS Oracle. Se estiver na mesma sessão, você consegue ler o dados (mesmo antes do commit). [ ]'s André Em 26 de fevereiro de 2014 17:31, jlchia...@yahoo.com.br escreveu: Tarde... Então, realmente ** ninguém ** consegue consultar informação não-comitada no RDBMS Oracle, isso é um ponto pacífico... No seu caso, as consultas feitas pelo próprio RDBMS para check de integridade, então ** Não ** tem a ver com controle de transação em si... Para esse cenário o que vc PODE fazer é especificar que elas só ocorrerão em tempo de COMMIT, alterando as constraints em questão para o status DEFERRED : veja no manual Oracle Oracle(R) Database Concepts no cap. 5 - Data Integrity a entrada Deferrable Constraints []s Chiappa OBS : óbvio, isso funciona ** SE ** vc está na mesma transação/mesma sessão o tempo todo no seu programa - se forem transações/sessões diferentes, Claro que não rola
Re: [oracle_br] dúvida na quey
Yuri Como dizem os gurus... teria de testar. ;-) Neste caso específico, na prática, acho que não daria diferença relevante... Mas vou arriscar um chute, teorizando: a 1a. opção seria melhor (mesmo com a expressão que utiliza multiplicação e a função Decode)... A 2a. seria um pouquinho pior, pois faria 2 consultas (2 instruções, 2 tráfegos de rede ida/volta). [ ]'s André Em 26 de fevereiro de 2014 15:31, Yuri Menon yuri.me...@gmail.comescreveu: Aí eu pergunto aos senhores. O que é mais eficiente Isso: SELECT SUM(VALOR * DECODE(COD,7,-1,1)) FROM TABELA ou ISSO: SELECT SUM(VALOR) FROM TABELA WHERE COD 7 - SELECT SUM(VALOR) FROM TABELA WHERE COD = 7 Em 25 de fevereiro de 2014 18:59, ederson200...@yahoo.com.br escreveu: Yuri, Taí a prova que estando escrito, pode ser simplificado. Na sua resposta, a primeira opção simplifica a resposta do meu código. Obrigado pelo retorno. Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit