【问题标题】:Getting 'integer out of range' error sqlalchemy获取“整数超出范围”错误 sqlalchemy
【发布时间】:2016-06-28 04:54:51
【问题描述】:

所以,我使用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})]

如果需要更多信息,请告诉我。

【问题讨论】:

标签: python postgresql sqlalchemy blaze odo


【解决方案1】:

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), 

【讨论】:

  • sql 字符串是 odo 在发生错误时显示为输出的内容。我无法改变它。
  • 由于我无法更改 sql 字符串,我该如何处理?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 2020-05-14
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2014-04-29
相关资源
最近更新 更多