"terry" <94487...@qq.com> writes:
> TEST=# CREATE TABLE B (C NUMERIC(8,3));
> CREATE TABLE
> TEST=# INSERT INTO B VALUES (12345.678);
> INSERT 0 1
> TEST=# SELECT * FROM B;
>      c     
> -----------
>  12345.678
> (1 row)

> TEST=# ALTER TABLE B ALTER COLUMN C TYPE NUMERIC(4,0);
> ERROR:  numeric field overflow
> DETAIL:  A field with precision 4, scale 0 must round to an absolute value
> less than 10^4.
> TEST=# ALTER TABLE B ALTER COLUMN C TYPE NUMERIC(5,0);
> ALTER TABLE

> /* scale lost */
> TEST=# SELECT * FROM B;
>    c   
> -------
>  12346
> (1 row)

This is exactly the intended behavior.  We're not really interested in
Oracle's inability to handle the case.

                        regards, tom lane

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to