ページの先頭行へ戻る
Enterprise Postgres 17 リリース情報

2.13.5 oracle.to_date関数の出力結果の変更

非互換

Fujitsu Enterprise Postgres 17では、関数oracle.to_dateに範囲外のデータを指定した際の出力結果が、異常終了にするようになりました。

Fujitsu Enterprise Postgres 16 SP1以前の場合
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)
Fujitsu Enterprise Postgres 17の場合
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)