ページの先頭行へ戻る
Symfoware Server V12.6.0 移行ガイド(OpenインタフェースからSymfoware Server (Postgres)への移行)
FUJITSU Software

3.2.18 複数行を返却する関数を引数とする関数のNULL行の扱いの変更

非互換

Symfoware Server (Postgres)では、NULL行をNULL行として返却すべき関数において、その引数に複数行を返却する関数が指定され、さらに返却データにNULLが含まれている場合、NULL行を返却するように変更となります。

Symfoware Server (Openインタフェース)の場合

NULL行を返却しません。

[例]

=# \pset null NULL
=# SELECT abs(unnest(array[1,2,null,-3]));
       abs
    --------
         1
         2
         3
Symfoware Server (Postgres)の場合

NULL行を返却します。

[例]

=# \pset null NULL
=# SELECT abs(unnest(array[1,2,null,-3]));
     abs
   --------
       1
       2
    NULL
       3

対処方法

関数の返却するデータとしてNULL行が不要な場合、IS NOT NULLなどを使用してNULL行を取り除いてください。

[例]

  =# SELECT * FROM (SELECT abs(unnest(array[1,2,null,-3]))) AS D1(DC1) WHERE DC1 IS NOT NULL