O bug nosso de cada dia

por Walter Cruz on 21/09/2007
in MySQL, PostgreSQL

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

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

6 comentários


Notice: Undefined index: comment_secret in /home/walter/repositories/whissip-dev/blogs/inc/comments/model/_comment.class.php on line 161
  1. Jefferson Email says :

    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...

  2. Walter Cruz (Member) Email says :

    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

  3. Cesar Cardoso says :

    Tem coisas *BUM* que só o MySQL faz por você :P

  4. 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 ?

  5. Walter Cruz (Member) Email says :

    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?

  6. Ok, saquei sim! Valeu. :)

Share Your Thoughts


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.))
Subscribe to comments by email

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