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

Carlos H. Cantu listas em warmboot.com.br
Dom Ago 7 21:31:22 -03 2016


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