[firebase-br] Como prevenir o erro "Arithmetic exception, numeric overflow, or string truncation. string right truncation."

Luciano franca luapfirebird em yahoo.com.br
Seg Ago 8 10:48:48 -03 2016


Será que não existe alguma outra forma de fazer isso ?
Grato 

    Em Segunda-feira, 8 de Agosto de 2016 10:20, Luciano franca <luapfirebird em yahoo.com.br> escreveu:
 

 Será que não existe alguma outra forma de fazer isso ?
Grato 

    Em Domingo, 7 de Agosto de 2016 21:31, Carlos H. Cantu <listas em warmboot.com.br> escreveu:
 

 A checagem do "tamanho" da informação vs. tamanho do campo
provavelmente acontece antes de qualquer outra, e tb antes do trigger
ser disparado.

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

Lf>  Pessoal desconsiderem o Email sobre "Como Criar um Check num Domain no Firebird 3"
Lf>  veja o Domain que criei.
Lf> CREATE DOMAIN "Campo_Teste" ASCHAR(2) CHARACTER SET WIN1252CHECK
Lf> (char_length(Value) < 3)COLLATE WIN_PTBR;
Lf> o que percebo é que estoura a capacidade do campo antes de
Lf> disparar o Check e é bem por isso que eu queria criar um check
Lf> para todos os meus Domains mais percebo que isso é impossível
Lf> Quando tento efetuar um comando via SQL como   " UPDATE Tabela SET Campo_Teste  =  'ABC'
Lf> vai me retornar o seguinte erro
Lf> arithmetic exception, numeric overflow, or string
Lf> truncation.string right truncation.expected length 2, actual 2.
Lf> Tentei também criar uma Trigger 

Lf> Porém dá o mesmo erro problema,  agora o estranho é que a trigger
Lf> está programada para disparar no Before não entendo o porque ela falha também.
Lf> CREATE OR ALTER trigger teste for Tabela_Testeactive before
Lf> insert or update position 0ASbegin if
Lf> (char_length(NEW.Campo_Teste) > 2) Then exception EXCEP_TESTE;End
Lf> Grato.



   

  


Mais detalhes sobre a lista de discussão lista