On 7/13/15 7:02 PM, Chengjun JIN wrote:
Hi all,
I am trying to save data into postgresql via sqlchemy ORM. I
encountered an error below: sqlalchemy.exc.DataError:
(psycopg2.DataError) integer out of range
I pinpoint the place where it goes wrong. I have a large number which
is 2468432255.0. If I change to smaller number like 468432255.0, then
it works.
The thing confused me is that: I define the column as volume =
Column(Numeric). As far as I understand, Numeric should be able to
handle this large number. Additionally, I tried other data type like
BigInt etc... They all gave me the same error.
I can't reproduce that. Here's a test:
from sqlalchemy import create_engine, Numeric, MetaData, Table, Column
m = MetaData()
t = Table('x', m, Column('data', Numeric))
e = create_engine("postgresql://scott:tiger@localhost/test", echo=True)
c = e.connect()
tr = c.begin()
m.create_all(c)
c.execute(
t.insert(),
{"data": 2468432255.0}
)
What is the actual NUMERIC type in the schema? If you make a NUMERIC
type with too low of a precision/scale, the number will be rejected.
example:
from sqlalchemy import create_engine, Numeric, MetaData, Table, Column
m = MetaData()
t = Table('x', m, Column('data', Numeric(6, 2)))
e = create_engine("postgresql://scott:tiger@localhost/test", echo=True)
c = e.connect()
tr = c.begin()
m.create_all(c)
c.execute(
t.insert(),
{"data": 2468432255.0}
)
output:
sqlalchemy.exc.DataError: (psycopg2.DataError) numeric field overflow
DETAIL: A field with precision 6, scale 2 must round to an absolute
value less than 10^4.
[SQL: 'INSERT INTO x (data) VALUES (%(data)s)'] [parameters: {'data':
2468432255.0}]
Please adapt the test above to illustrate how you're getting your error
exactly.
Any idea?
Thanks,
Chengjun
--
You received this message because you are subscribed to the Google
Groups "sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to sqlalchemy+unsubscr...@googlegroups.com
<mailto:sqlalchemy+unsubscr...@googlegroups.com>.
To post to this group, send email to sqlalchemy@googlegroups.com
<mailto:sqlalchemy@googlegroups.com>.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.