何か異常なことが起こっています。移行中に、2050 年を超える日付 (たとえば、20.05.2050、21.11、2051) がありますが、何らかの理由で、Oracle はそれらを 1950 年、1951 年などに変更します。これらは退職日なので、明らかに 1950 年代と 1960 年代になることはありません。
元のテーブルの日付は、YYYYMMDD 形式、別名 20500130 のようなものです。ここに私のマージ ステートメントを示します。
MERGE INTO employment_data emp
USING temp_02 src
ON (TO_NUMBER(src.id) = emp.id)
WHEN MATCHED THEN UPDATE SET
emp.retirement_day = DECODE(TO_NUMBER(src.retirement), 0, NULL, TO_DATE(src.retirement, 'YYYY.MM.DD'));
他の日付 (例: 20301204) は問題ありませんが、2050 年以降の日付は問題になります。この煩わしさをどのように解決できますか?
事前にThx :-)