- Este tópico contém 8 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 8 meses atrás por
MaxSteel.
-
AutorPosts
-
10 de junho de 2009 às 4:12 pm #87261
MaxSteel
Participantetenho um trigger que faz o seguinte comando:
:NEW.minutolanc := to_char(sysdate, ‘MI’);o campo minutolanc e definido como varchar2(2), só que sempre esta dando a mensagem de ora-12899, alguem tem ideia do que pode ser ???
muito obrigado!
10 de junho de 2009 às 5:31 pm #87264
Regis AraujoParticipanteOpa.. Bom dia..
Bom, o erro é de valor maior do que o esperado, mas como você informou que o tamanho está correto..
Sugiro que você realize um teste, crie esta trigger apontando para uma tabela de teste, onde esta campo tenha o tamanho de 50 e verifique qual o valor que ele inseriu.. Assim você irá verificar se ele está inserindo algo que não é para inserir.
Abraços…
10 de junho de 2009 às 5:35 pm #87265MaxSteel
ParticipanteFiz um teste onde na trigger fiz um if:
IF length (TO_CHAR (SYSDATE, ‘MI’)) > 2 then
Raise_application_error(-20000,’valor encontrado : ‘||TO_CHAR (SYSDATE, ‘MI’));
end if;e passa batido neste if e da erro no campo, vou testar o que você pediu depois eu posto o resultado.
por hora muito obrigado!
abraço
10 de junho de 2009 às 6:41 pm #87266MaxSteel
ParticipanteCriei um campo do tipo varchar2(4000) e mesmo assim quando e executado o comando :NEW.teste2 := TO_CHAR (SYSDATE, ‘MI’);
da o erro ORA-12899 value too large for column teste2(actual:8872, maximum:4000).não estou entendendo
10 de junho de 2009 às 7:30 pm #87267
Regis AraujoParticipanteOpa..
Bem estranho isto..
Mas faz assim..
MI VARCHAR2(2) := '';
select to_char(sysdate,'MI') into MI from dual;
:NEW.teste2 := MI;
Pois assim ele irá passar apenas o valor que vc precisa…
10 de junho de 2009 às 8:20 pm #87268eversonpiza
ParticipanteUma forma de vc saber oq esta gravando, sem estourar o campo, é dar uma substr nele.
algo assim:
:NEW.teste2 := substr(TO_CHAR (SYSDATE, ‘MI’),1,4000);
Assim vc verá oq ele esta tentando inserir.
12 de junho de 2009 às 11:05 pm #87284MaxSteel
ParticipanteBoa tarde pessoal,
e o seguinte fiz o teste de fazer um substr e não deu nenhum problema, mas o campo em questão ficou nulo sem informação, se eu volta a gravar no campo varchar2(2) da erro na hora, o engraçado e que se executar o camando com um select from dual nunca da problema.
Se alguem tivar mais alguma dica será muito bem vinda.15 de junho de 2009 às 3:49 pm #87289MaxSteel
ParticipanteBom dia a todos,
Após muita luta com este problema, fiz o seguinte dropei as duas colunas que estavam apresentando esta mensagem criei novamente as duas colunas e não deu mais erros.
Agora fica a ? do que pode ter gerado este problema.
Pessoal valeu pela força.
22 de junho de 2009 às 11:32 pm #87451MaxSteel
ParticipanteBoa tarde!
Bom não funcionou o processo que fiz, pois no teste executaram outro perido e quando executa o periodo de um mês volta a dar o problema.
se alguem tivar mais alguma sugestão, fico agradecido!
-
AutorPosts
- Você deve fazer login para responder a este tópico.