From: | Michael Aiello <michael(dot)aiello(at)asg(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
Subject: | RE: BUG #15091: to_number() returns incorrect value |
Date: | 2018-02-26 18:39:53 |
Message-ID: | d5944076b6b1468dba99715b33014a84@asg.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hi Tom,
Thanks for the quick reply.
I get different results when I tried the test with Oracle (using Oracle 12.1 running on Linux, from a Windows client)
SELECT to_number('123.0', 'FM9999999') FROM DUAL;
ORA-01722: invalid number
01722. 00000 - "invalid number"
SELECT to_number('123.0', 'FM9999.999') FROM DUAL;
123
SELECT to_number('123.0', 'FM9999D999') FROM DUAL;
123
I'm not seeing the locale issue, maybe because of the client running on Windows, but Oracle 12 doesn't seem to like the first case.
Thanks
Mike
-----Original Message-----
From: Tom Lane [mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us]
Sent: Monday, February 26, 2018 12:48 PM
To: Michael Aiello <michael(dot)aiello(at)asg(dot)com>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #15091: to_number() returns incorrect value
=?utf-8?q?PG_Bug_reporting_form?= <noreply(at)postgresql(dot)org> writes:
> When to_number is called with a string that contains a decimal point,
> but there is no decimal indicator in the format string, the decimal
> digits are appended to the integer portion, having the effect of
> increasing the the integer value.
> This can be reproduced with a simple SELECT, as follows:
> SELECT to_number('123.0', 'FM9999999'); returns value 1230
[ experiments ... ] I get the same result on Oracle, so I'd say this is the "correct" behavior.
> by comparison, a decimal indicator in the format returns the correct
> value:
> SELECT to_number('123.0', 'FM99999D999'); returns 123.0
On the other hand, Oracle also returns 1230 for this case :-(.
But that seems to be a locale issue --- if I change the D to "."
I get the expected result 123.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-02-26 18:40:57 | Re: BUG #15080: ecpg on windows doesn't define HAVE_LONG_LONG_INT |
Previous Message | Jonathan Allen | 2018-02-26 18:28:12 | RE: BUG #15080: ecpg on windows doesn't define HAVE_LONG_LONG_INT |