現象
転送元データに 0054-03-03 00:00:00 のような西暦1000年未満の日時データが含まれている場合、転送先PostgreSQLでtimestamp型として転送することができません。
以下エラーが発生します。
[ERROR]: Caused by: ERROR: date/time field value out of range: "53-01-03 00:00:00.000000+0000"
[ERROR]: Hint: Perhaps you need a different "datestyle" setting.
原因
TROCCO内部で西暦1000年未満の日時データを変換する際に正しく処理できないため、PostgreSQLへの転送時にエラーが発生します。
対処法
以下のいずれかの方法で回避することができます。
① カラム定義でstring型に設定して転送する
STEP1カラム定義で該当カラムのデータ型を string に変更して転送します。
※ 転送先PostgreSQLでは該当カラムはstring型になります。
② クエリでNULLに変換して転送する
一部コネクタ(データベース・DWH系)では、転送元STEP1のクエリ設定で年が1000未満の値をNULLとして転送することで、エラーを回避できます。
※ 転送先PostgreSQLでは該当の値がNULLになります。
SELECT
ID,
CASE
WHEN EXTRACT(YEAR FROM column_name) < 1000 THEN NULL
ELSE column_name
END AS column_name
FROM テーブル名;
コメント
0件のコメント
記事コメントは受け付けていません。