获得超出范围的整数'错误sqlalchemy

时间:2016-06-28 04:54:51

标签: python postgresql sqlalchemy blaze odo

所以,我使用odo进行数据迁移,但遇到了这个错误:

sqlalchemy.exc.DataError: (psycopg2.DataError) integer out of range  

源表和目标表都具有相同的模式,但在后端执行的sql语句中,整数值与它们具有.0。与源表中的整数34类似,显示为34.0

[SQL: INSERT INTO table2 (col1, col2,col3) VALUES (%(col1)s, %(col2)s, %(col3)s] 
[parameters: ({'col2' : val2', 'col3' : val3', 'col1' : val1})]

如果需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

sql字符串应为:

INSERT INTO table2 (col1, col2, col3) VALUES (
    %(col1)s::numeric::int, 
    %(col2)s::numeric::int, 
    %(col3)s::numeric::int
)

如果目标列不可为空且源值可以是None,则将其合并:

    coalesce(%(col1)s::numeric::int, 0),