非互換
Fujitsu Enterprise Postgres 17では、関数oracle.to_dateに範囲外のデータを指定した際の出力結果が、異常終了にするようになりました。
postgres=# SELECT oracle.to_date('112012', 'J'); to_date ------------------------ 4407-07-30 00:00:00 BC (1 row) postgres=# SELECT oracle.to_date('1003/03/15', 'yyyy/mm/dd'); to_date --------------------- 1003-03-15 00:00:00 (1 row)
postgres=# SELECT oracle.to_date('112012', 'J'); ERROR: Dates before 1582-10-05 ('J2299159') cannot be verified due to a bug in Oracle. postgres=# SELECT oracle.to_date('1003/03/15', 'yyyy/mm/dd'); ERROR: Dates before 1100-03-01 cannot be verified due to a bug in Oracle.
対処方法
orafce.oracle_compatibility_date_limitにoffを設定することで、Fujitsu Enterprise Postgres 16 SP1以前と同じ実行結果を取得することができます。
postgres=# SET orafce.oracle_compatibility_date_limit TO off; SET postgres=# SELECT oracle.to_date('112012', 'J'); to_date ------------------------ 4407-07-30 00:00:00 BC (1 row) postgres=# SELECT oracle.to_date('1003/03/15', 'yyyy/mm/dd'); to_date --------------------- 1003-03-15 00:00:00 (1 row)