RES: RES: RES: RES: [oracle_br] Re: View Materializada
Chiappa, Sim, todos estão na mesma rede e utilizam o mesmo DB Link. Não ocorre nenhum erro no alert. Eu estava tentando recriar o objeto e simplesmente ficava Executando, não gerava nenhum erro. Reiniciei o Banco, e consegui recriar a VM e ate o momento esta fazendo REFRESH sem problemas. Muito estranho, o que pode ter ocorrido. Muito obrigado pela ajuda. Ednilson De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Enviada em: terça-feira, 12 de maio de 2015 18:03 Para: oracle_br@yahoogrupos.com.br Assunto: Re: RES: RES: RES: [oracle_br] Re: View Materializada Então : os outros bancos usam a *** mesma Exata rede *** ??? Conectam no mesmo exato database 11g via dblink ?? Se não, é Óbvio que o fato de os outros estarem com sucesso não significa coisa nenhuma para o problema desse ambiente em análise, certo ?? E explica melhor o que é esse nem está mais criando : dá um erro no DDL ?? Ou no REFRESH ?? Qual msg de erro/entrada no alert/msgs em trace files são gerados ?? E logicamente, se com esse nem está criando vc quer dizer que o DDL de criação fica processando e não retorna, isso para mim indica Claramente que ou esse banco tem problemas no dicionário (os DDLs basicamente fazem INSERT nas tabelas internas) OU então realmente o dblink está demorando para retornar Sendo isso, além da monitoração/trace do processamento feito no banco 9i , no banco-origem 11g E na rede, eu realmente indicaria uma análise mais séria por um DBA local nesse banco em especial procurando por corrupções nalgum bloco da tablespace SYSTEM, inconsistências no dicionário e coisas assim []s Chiappa
[oracle_br] Re: Objetos...
Cristiano, Eu uso este: --Informe um dos parâmetros para restringir ou deixe tudo vazio (para listar todos) set lines 100 pages 100 verify off; column sid format a10; column serial format a10; prompt accept WOBJ prompt 'Informe nome do OBJETO ou ENTER para todos: ' accept Wsid prompt 'Informe SID ou ENTER para todas: ' accept Wmodule prompt 'Informe MODULE ou ENTER para todos: ' select vs.audsid audsid, to_char(locks.sid) sid, to_char(vs.serial#) serial, vs.username oracle_user, vs.osuser os_user, vs.program program, vs.module module, vs.action action, vs.terminal, vs.process process, objs.owner object_owner, objs.object_name object_name, objs.object_type object_type , round( locks.ctime/60, 2 ) lock_time_in_minutes from gv$session vs, gv$lock locks, all_objects objs, all_tables tbls where locks.id1 = objs.object_id and vs.sid = locks.sid and (vs.sid ='Wsid' OR nvl('Wsid',0) =0) and objs.owner = tbls.owner and objs.object_name = tbls.table_name and objs.owner != 'SYS' and locks.type = 'TM' and (vs.module = 'Wmodule' or nvl('Wmodule','.') ='.') and (objs.object_name ='WOBJ' OR nvl('WOBJ','.') ='.') group by vs.audsid, locks.sid, vs.serial#, vs.username, vs.osuser, vs.program, vs.module, vs.action, vs.terminal, vs.process, objs.owner, objs.object_name, objs.object_type, round( locks.ctime/60, 2 ) order by lock_time_in_minutes; set lines 100 pages 20 verify on; Ederson Elias DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 Labor improbus omnia vincit
[oracle_br] Re: Objetos...
Opa, explica aí : se vc quiser saber se um dado PL/SQL está sendo usado NESTE MOMENTO, ie, se ele está sendo executado por alguém NESTE MOMENTO, vc pode usar o script abaixo... Já se o que vc quer é saber se um dado stored PL/SQL que está gravado no banco foi no passado recente utilizado ou não pela Aplicação (digamos, vc não tem uma Documentação confiável e quer saber se o tal PL/SQL pode ser apagado do banco sem prejuízo para a Aplicação), essa informação NÃO é registrada no database : vc poderia neste caso varrer os fontes da Aplicação , ou (se não for exigida uma Precisão / Garantia maior) , a Possibilidade é vc ativar algum tipo de Auditoria que registre daí pra frente as execuções dos PL/SQLs ou talvez consultar as V$ de caches do banco... O script para listar PL/SQLs em execução no momento é : break on sid skip 1 prompt Currently Executing Packages SELECT /*+ RULE */ substr(DECODE(o.kglobtyp, 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE', 12, 'TRIGGER', 13, 'CLASS'),1,15) TYPE, substr(o.kglnaown,1,30) OWNER, substr(o.kglnaobj,1,30) NAME, s.indx SID, s.ksuseser SERIAL FROM sys.X_$KGLOB o, sys.X_$KGLPN p, sys.X_$KSUSE s WHERE o.inst_id = USERENV('Instance') AND p.inst_id = USERENV('Instance') AND s.inst_id = USERENV('Instance') AND o.kglhdpmd = 2 AND o.kglobtyp IN (7, 8, 9, 12, 13) AND p.kglpnhdl = o.kglhdadr AND s.addr = p.kglpnses ORDER BY 4, 2, 1 / []s Chiappa
Re: RES: RES: RES: RES: [oracle_br] Re: View Materializada
Bom, com certeza um cenário como esse (onde outros bancos usam o mesmo dblink e não apresentam sintoma, E após restart do banco a situação reverte), a gente mais ou menos descarta como primeira opção a infra e pensa OU em locks/conflitos (referentes à tabelas internas que são alteradas/inseridas, talvez causados por job de refresh que falhou e concorreu com uma nova re-execução, talvez) , e que sumiram com o restart , OU então se pensa mesmo em problemas internos do database, como fragmentação/whitespace de tabelas internas, corrupção de dicionário (ou física), etc A minha recomendação é de imedito que um DBA faça um healthcheck completo nesses bancos (no banco da origem dos dados E no do destino onde está a view materializada), que implemente uma monitoração para ser alertado ASAP da próxima vez E da próxima vez quando der o erro vc aí sim faz o TRACE completo e/ou consulta as V$ de SQL e de performance (provavelmente com uma nova tentativa de refresh desta vez manual), olha com mais detalhes os logs do job E os tracefiles/logfiles gerados no servidor, enfim, tudo que indiquei... []s Chiappa
[oracle_br] Objetos...
Boa tarde amigos, Gostaria de saber se existe alguma forma de saber se um pacote PL/SQL, procedimento ou função está sendo usado? Minha plataforma é Oracle Database 10g Enterprise Edition Release 10.2.0.3.0. Caso algum dos amigos possua uma consulta que me retorne esta informação, ficaria grato pela ajuda. Atenciosamente, [image: Foto Cristiano Vasconcelos Barbosa] *Cristiano Vasconcelos Barbosa.'.* * Analista de Sistemas Banco de Dados* | Cel: +55 (85) 9691.8331 -- http://br.linkedin.com/in/cristianovasconcelos *DEUS MEUMQUE JUS*.'. *DÓMINI SUMUS*.'. Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype] cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger] cvasconcel...@yahoo.com.br [image: My QR VCard] http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D
[oracle_br] [Forms] Trigger para validar item
Pessoal, buenas... Estou com um problema aqui e gostaria de uma ideia de vocês de como eu posso solucionar. Tenho um bloco baseado em tabela, com alguns registros (Por ex.: Temperatura, Pulso, Altura, Peso, IMC e Volemia), existem itens Resultado, que são os quais o usuário digita o valor (ex.: Temperatura, Pulso, Altura e Peso) e itens Calculado, onde esses são calculados automaticamente baseado em uma fórmula que também está no bloco (ex.: IMC - (PESO) / ((ALT/100)*(ALT/100)) e Volemia - (PESO)*70). Pois bem, alguns itens tem uma faixa que é considerada Normal (ex. temperatura entre 34 e 37,5), e assim que a pessoa digita, eu preciso informar ao usuário, assim que ele sai do item, se aquele valor está ou não dentro da faixa padrão, deixando a linha vermelha, já para os itens calculados, eu vou fazer o mesmo procedimento, mas depois que eu executar o calculo dele. Outra regra que preciso implementar é a seguinte, se for o último registro do bloco, em vez de ir para o próximo registro (next-record), eu tenho que dar um go_item para um determinado botão. Bom, pelo que eu sei, tenho 3 possibilidades para fazer a verificação se o valor que foi digitado está ou não dentro da faixa padrão: 1. Key-Next-Item;2. When-Validate-Item;3. Post-Change. Agora vou comentar um pouco dos problemas de cada trigger que citei. 1. O key-next-item não dispara se o usuário sair do item com o mouse, ou seja, temos uma falha.2. O when-validate-item não dispara se os últimos itens forem os calculados, onde o usuário não terá que digitar o valor, pois ele já vai estar preenchido e não vou conseguir fazer a segunda regra, que é saber se o item é o último do bloco.3. O post-change, além do mesmo problema do when-validate-item em relação aos últimos itens serem calculados, pelos teste que realizei aqui, quando o bloco é populado assim que eu chamo o forms, a trigger é disparada também, que no meu caso, não precisaria. Diante disso, queria uma ideia dos colegas de como eu posso resolver o meu problema. Estou usando Forms 10g e banco 11g (Vou ficar devendo a build dos dois pois estou em casa). [ ]s
RE: [oracle_br] [Forms] Trigger para validar item
Tiago Coloque a validação do range no when-validate-item e o teste do último registro no key-next-item. Use “if :system.last_record = ‘TRUE’…“ para saber se está no ultimo registro do bloco. Se precisar que o when-validate-item seja disparado antes que o código do key-next-item seja executado use o comando “enter;” neste último. enter; If form_success then codigo do next_item end if; Étore From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Sent: quarta-feira, 13 de maio de 2015 22:33 To: oracle_br Subject: [oracle_br] [Forms] Trigger para validar item Pessoal, buenas... Estou com um problema aqui e gostaria de uma ideia de vocês de como eu posso solucionar. Tenho um bloco baseado em tabela, com alguns registros (Por ex.: Temperatura, Pulso, Altura, Peso, IMC e Volemia), existem itens Resultado, que são os quais o usuário digita o valor (ex.: Temperatura, Pulso, Altura e Peso) e itens Calculado, onde esses são calculados automaticamente baseado em uma fórmula que também está no bloco (ex.: IMC - (PESO) / ((ALT/100)*(ALT/100)) e Volemia - (PESO)*70). Pois bem, alguns itens tem uma faixa que é considerada Normal (ex. temperatura entre 34 e 37,5), e assim que a pessoa digita, eu preciso informar ao usuário, assim que ele sai do item, se aquele valor está ou não dentro da faixa padrão, deixando a linha vermelha, já para os itens calculados, eu vou fazer o mesmo procedimento, mas depois que eu executar o calculo dele. Outra regra que preciso implementar é a seguinte, se for o último registro do bloco, em vez de ir para o próximo registro (next-record), eu tenho que dar um go_item para um determinado botão. Bom, pelo que eu sei, tenho 3 possibilidades para fazer a verificação se o valor que foi digitado está ou não dentro da faixa padrão: 1. Key-Next-Item; 2. When-Validate-Item; 3. Post-Change. Agora vou comentar um pouco dos problemas de cada trigger que citei. 1. O key-next-item não dispara se o usuário sair do item com o mouse, ou seja, temos uma falha. 2. O when-validate-item não dispara se os últimos itens forem os calculados, onde o usuário não terá que digitar o valor, pois ele já vai estar preenchido e não vou conseguir fazer a segunda regra, que é saber se o item é o último do bloco. 3. O post-change, além do mesmo problema do when-validate-item em relação aos últimos itens serem calculados, pelos teste que realizei aqui, quando o bloco é populado assim que eu chamo o forms, a trigger é disparada também, que no meu caso, não precisaria. Diante disso, queria uma ideia dos colegas de como eu posso resolver o meu problema. Estou usando Forms 10g e banco 11g (Vou ficar devendo a build dos dois pois estou em casa). [ ]s [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] simulado
Boa tarde a todos do grupo. Qual dos simulados(vce ou pass4sure) se encontra mais atualizado no momento para realização das provas de certificação??(iz0-050 e iz0-058) Obrigado
Re: [oracle_br] simulado
Orfeu tente verificar o uso o TestKing é o mais próximo da prova real esse. VCE tem muitos BrainDumps e acabam que tendo 2 ou mais questões repetidas. Abraço David Siqueira DBA Oracle e Oracle ACE Member BLOG .: http://databaseguard.blogspot.com O mistério da vida me causa a mais forte emoção. É o sentimento que suscita a beleza e a verdade, cria a arte e a ciência. Se alguém não conhece essa sensação ou não pode mais exprimir espanto ou surpresa, já é um morto-vivo e seus olhos se cegaram..(Albert Einstein - 1879 - 1955) Em 13 de maio de 2015 15:06, Orfeu Lima orfeu.l...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Boa tarde a todos do grupo. Qual dos simulados(vce ou pass4sure) se encontra mais atualizado no momento para realização das provas de certificação??(iz0-050 e iz0-058) Obrigado