[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