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

2.2.148 Oracleデータベース互換機能のnvl2関数の変更

非互換

Fujitsu Enterprise Postgres 15では、Oracleデータベース互換機能において、nvl2関数を変更し、オーバーロード関数を追加します。文字列に対応するための修正であり、引数や返却値の型の変更のみであるため、動作は従来と同様です。

ただし、FUJITSU Enterprise Postgres 14以前のバージョンで定義したnvl2関数に依存するオブジェクトは、関数の参照に異常が発生するため、Fujitsu Enterprise Postgres 15以降のバージョンでは利用することができません。

以下にnvl2関数の定義を示します。

FUJITSU Enterprise Postgres 14以前の場合
CREATE FUNCTION nvl2(anyelement, anyelement, anyelement)
RETURNS anyelement
AS 'MODULE_PATHNAME','ora_nvl2'
LANGUAGE C IMMUTABLE;
Fujitsu Enterprise Postgres 15以降の場合
CREATE FUNCTION oracle.nvl2("any", anyelement, anyelement)
RETURNS anyelement
AS 'MODULE_PATHNAME','ora_nvl2'
LANGUAGE C IMMUTABLE;

CREATE FUNCTION oracle.nvl2("any", text, text)
RETURNS text
AS 'MODULE_PATHNAME','ora_nvl2'
LANGUAGE C IMMUTABLE;

対処方法

nvl2関数に依存するオブジェクトを再作成してください。作成し直すことで、関数が正常に参照されるようになります。