« Cidades com nomes repetidos no BrasilLinuxChix 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... :D


Email por Walter Cruz em MySQL, PostgreSQL
Tags: bancos de dados, explícito, implícito, mysql, postgresql

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] Email
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...
21/09/2007 @ 13:29
Comentário de: Walter Cruz [Membro] Email · http://waltercruz.com
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
Comentário de: Luciano Pacheco [Visitante] Email · http://lucmult.wordpress.com
MS-SQL server (7.0, 2000 e 2005)

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
Comentário de: Walter Cruz [Membro] Email · http://waltercruz.com
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
Comentário de: Luciano Pacheco [Visitante] Email · http://lucmult.wordpress.com
Ok, saquei sim! Valeu. :)

24/09/2007 @ 12:40

Deixe seu comentário


Seu endereço de e-mail não será revelado nesse site.

Sua URL será exibida.
PobreExcelente
(Quebras de linha se tornam <br />)
(Nome, e-mail & website)
(Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))

You can just use your OpenID to provide your name, e-mail and url.