2016-06-28 18 views
0

SQLAlchemyの、私は、データ移行のためのodoを使用していますが、このエラーに出くわした:「範囲外の整数」を取得エラーので

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

送信元と送信先テーブルの両方が同じスキーマを持っていますが、SQL文でバックエンドで実行されている整数値の値は.0です。ソーステーブル内の整数3434.0として示されているように:

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

より多くの情報が必要な場合は私に知らせてください。

+0

これが原因 'NaN'値であるかもしれませんパラメータ辞書の整数列の場合新しい質問が追加されました:http://stackoverflow.com/questions/38074487/copy-empty-string-to-integer-column-postgres – delalli

答えて

0

SQL文字列は次のようになります。

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

ターゲット列がNULL可能ではなく、ソース値がNoneすることができた場合は、それを合体:

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

sql文字列は、エラーが発生したときにodoが出力として表示している文字列です。私はそれを変更することはできません。 – delalli

+0

SQLの文字列を変更できないので、どうすればこの問題を解決できますか? – delalli

+0

@delalli Python/Odoコードを表示する –

関連する問題