- Este tópico contém 7 respostas, 3 vozes e foi atualizado pela última vez 18 anos, 11 meses atrás por ebertfm.
-
AutorPosts
-
3 de fevereiro de 2006 às 8:31 pm #75177Anônimo
alguem sabe como fa?o para descobrir qual coluna est? dando este problema?
6 de fevereiro de 2006 às 3:07 pm #75183Marcio68AlmeidaParticipanteem que momento d? esse erro ???
voc? est? fazendo um import massivo a partir de um arquivo texto ???
detalhe melhor o problema.6 de fevereiro de 2006 às 8:38 pm #75188Anônimoeste problema acontece em algumas rotinas aqui na empresa,
as vezes os programadores n?o se atentam a isso, e eu gostaria de saber se existe alugum jeito, de saber em qual tabela e campo est? acontecendo este erro.
sabendo que esse erro acontece no cliente e nao tem como eu debugar isso.7 de fevereiro de 2006 às 3:43 pm #75199Marcio68AlmeidaParticipanteEsse tipo de erro n?o aparece no log normal do banco, por isso deve ser tratado na programa??o, que deve fornecer detalhas do erro para que posa ser tratado adequadamente.
N?o tem como adivinhar onde deu um erro sem que o programador fa?a a sua parte.7 de fevereiro de 2006 às 4:20 pm #75203ebertfmParticipanteVisitante, Bom dia.
Procure a documenta??o do Oracle e fa?a um trace da aplica??o.
Com o Trace, vc descobre o ponto onde est? dando o erro.
Procure na documenta??o do Oracle como ligar o trace para uma sess?o e como utilizar o tkprof (que formata o arquivo de trace).
Com o resultado do TKPROF vc verifica o comando onde o erro aconteceu.
? um assunto interessante e vale a pena aprender a utilizar este recurso. Vc pode utilizar este recurso em muitas situa??es de erros, de problemas de performance, etc.
Abra?os.
7 de fevereiro de 2006 às 4:32 pm #75205Marcio68AlmeidaParticipanteebertfm,
o problema, pelo que eu percebi, ? que eles desenvolvem e o erro acontece no cliente, n?o na empresa, acionar o trace no cliente pode ser uma estrat?gia perigosa, pois pode gerar problemas de espa?o…
o mais recomendado ? que os programadores se habituem a tratar os erros sempre que existir uma transa??o, o que a maioria n?o faz…7 de fevereiro de 2006 às 5:32 pm #75209ebertfmParticipantePrezados,
Minha proposta n?o ? fazer trace do cliente, e sim do processo do cliente, que est? rodando no servidor.
Quando ligamos o trace, ? de um processo Oracle, que roda no servidor.
Para ligar o trace utilize a procedure do SYS :
sys.dbms_system.set_sql_trace_in_sessionEste trace vai capturar TODOS os comandos emitidos pela aplica??o (comandos SQL obviamente) e assim vai conter o comando tb onde o erro ocorreu. Este trace ? gerado no diret?rio indicado pela vari?vel do Oracle: user_dump_dest.
Para ver o local onde o log do trace ser? logado, use no sqlplus o comando:
SQL> show parameter user_dump
Para verificar o conte?do do arquivo ? preciso utilizar o TKPROF no arquivo.
Este procedimento n?o tem nenhum risco, visto que, se feito corretamente, o trace vai ser ligado apenas de uma sess?o em que vai ser simulado o erro.
Assim que esta sess?o for terminada, ou que o comando de desligar o trace for emitido, o trace p?ra de gerar o arquivo.
? um erro de BANCO, mesmo que tenha sido gerado pela aplica??o, mas o erro foi no banco. Portanto desta forma, vc pode descobrir sem incomodar seus programadores. Ap?s descobrir o problema, passe para os programadores a forma correta de fazer.
Na minha humilde opini?o este ? um dos trabalhos do DBA.
Espero ter ajudado.
Abra?os.
10 de fevereiro de 2006 às 9:09 pm #75231ebertfmParticipanteS? para completar…
Quem quiser eu tenho um material passo a passo para fazer o trace de uma sess?o do Oracle.
Quem quiser eu envio (? curtinho e explicado nos detalhes como fazer o trace).
Abra?os. -
AutorPosts
- Você deve fazer login para responder a este tópico.