ORA-01401: valor inserido grande demais para a coluna

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
thiago.sousa
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 28
Registrado em: Sex, 09 Dez 2005 9:17 am
Localização: Itajai-SC
_______________________________________
Thiago Antonio
SCJP - Sun Certified Java Programer
SCJA - Sun Certified Java Associate

Pessoal, como eu faço para descobrir qual valor está maior que o da coluna...????
urgentemente.


obrigado;
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5026
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Acho que você tem que ir testando... Acho que um DEBUG ia resolver.
thiago.sousa
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 28
Registrado em: Sex, 09 Dez 2005 9:17 am
Localização: Itajai-SC
_______________________________________
Thiago Antonio
SCJP - Sun Certified Java Programer
SCJA - Sun Certified Java Associate

este erro só ocorre no cliente, é uma rotina muito complexa e dificil de depurar.

eu queria algum comando ou trigger para pegar o sql que estava rodando e ver o valor das colunas.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5026
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Uma idéia é você fazer o seguinte:
Coloca um exception nesse INSERT.
Dentro desse exception, você faz o mesmo insert pra uma tabela com os campos BEM MAIORES que o normal...

Exemplo:
Se o campo é VARCHAR2(15), cria uma tabela com esse campo VARCHAR2(200), etc...

Ou seja, caso der o erro, o exception vai inserir nessa outra tabela. Depois de inserir, você dá um raise e para a aplicação. Daí você pode ver com calma o que está sendo inserido...

Deve existir formas melhores... mas acho que assim você ia conseguir pelo menos saber o que está sendo inserido...

Caso você não queria inserir, coloca um DBMS_OUTPUT pra cada campo no exception... daí roda no sql*plus sua rotina.. :-/
thiago.sousa
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 28
Registrado em: Sex, 09 Dez 2005 9:17 am
Localização: Itajai-SC
_______________________________________
Thiago Antonio
SCJP - Sun Certified Java Programer
SCJA - Sun Certified Java Associate

eu imaginei o seguinte.
Alguma forma de fazer isso de uma forma generica.
Porque isso acontece rotineiramente, os programadores acabam esquecendo de limitar os campos e eu fico neste impasse.

eu queria não ter que mecher nas rotinas deles, eu gostaria de fazer tudo no banco, de uma maneira que isso possa ser dinamico.
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Gera um trace da sessao do cara, depois é só olhar lá =:-)
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante