非互換
Fujitsu Enterprise Postgres 15では、Oracleデータベース互換機能において、nvl2関数を変更し、オーバーロード関数を追加します。文字列に対応するための修正であり、引数や返却値の型の変更のみであるため、動作は従来と同様です。
ただし、FUJITSU Enterprise Postgres 14以前のバージョンで定義したnvl2関数に依存するオブジェクトは、関数の参照に異常が発生するため、Fujitsu Enterprise Postgres 15以降のバージョンでは利用することができません。
以下にnvl2関数の定義を示します。
CREATE FUNCTION nvl2(anyelement, anyelement, anyelement) RETURNS anyelement AS 'MODULE_PATHNAME','ora_nvl2' LANGUAGE C IMMUTABLE;
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関数に依存するオブジェクトを再作成してください。作成し直すことで、関数が正常に参照されるようになります。