| « Cidades com nomes repetidos no Brasil | LinuxChix Brasília 2007 » |
O bug nosso de cada dia
21/09/2007
MySQL
mysql> select cast(85 as decimal(3,2)); +--------------------------+ | cast(85 as decimal(3,2)) | +--------------------------+ | 9.99 | +--------------------------+ 1 row in set, 1 warning (0.00 sec)
PostgreSQL
template1=# select cast(85 as decimal(3,2)); LOG: statement: select cast(85 as decimal(3,2)); ERROR: numeric field overflow DETAIL: The absolute value is greater than or equal to 10^1 for field with precision 3, scale 2.
O Mysql sempre silenciando os erros... 
Endereço de trackback para este post
Trackback URL (clique direito e copie atalho/localização do link)
6 comentários
Comentário de: Jefferson [Visitante]
template1=# select cast(85 as decimal(3,2));
LOG: statement: select cast(82 as decimal(3,2));
Mas era de 85 ou de 82? O LOG apontou 82...
LOG: statement: select cast(82 as decimal(3,2));
Mas era de 85 ou de 82? O LOG apontou 82...
21/09/2007 @ 13:29
Tá bom, você me pegou: eu fiz o teste no postgres com 82, depois eu vi que devia ser 85, mas esqueci de mudar a linha de baixo :D
21/09/2007 @ 13:32
Comentário de: Cesar Cardoso [Visitante] · http://fudeblog.zyakannazio.eti.br
Tem coisas *BUM* que só o MySQL faz por você :P
21/09/2007 @ 14:01
MS-SQL server (7.0, 2000 e 2005)
Agora fica a pergunta: Pq acontece isso, alguém sabe ?
Server: Msg 8115, Level 16, State 8, Line 1
Arithmetic overflow error converting numeric to data type numeric.
Agora fica a pergunta: Pq acontece isso, alguém sabe ?
21/09/2007 @ 16:17
Oi Luciano! Na verdade, o campo deveria ser decimal (4,2). O primeiro número, antes da virgula, indica o total de números permitido no campo, sacou?
22/09/2007 @ 13:41
Ok, saquei sim! Valeu. :)
24/09/2007 @ 12:40
