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

2.2.179 PL/pgSQLでarray型の変数の設定不可

非互換

FUJITSU Enterprise Postgres 14では、PL/pgSQLでarray型の変数に値を設定することができないように変更します。

FUJITSU Enterprise Postgres 13 SP1以前の場合

array型の変数に値を設定できます。

[例]

=# CREATE OR REPLACE FUNCTION test()
-#  RETURNS SETOF int as $$
$#  DECLARE rca int[];
$#  BEGIN
$#    RETURN query values(10),(20);
$#    GET diagnostics rca[1] = row_count;
$#    RAISE NOTICE '% %', found, rca[1];
$#  END;
$#  $$ LANGUAGE plpgsql;
CREATE FUNCTION
FUJITSU Enterprise Postgres 14の場合

array型の変数に値を設定不可になります。

[例]

=# CREATE OR REPLACE FUNCTION test()
-#  RETURNS SETOF int as $$
$#  DECLARE rca int[];
$#  BEGIN
$#    RETURN query values(10),(20);
$#    GET diagnostics rca[1] = row_count;
$#    RAISE NOTICE '% %', found, rca[1];
$#  END;
$#  $$ LANGUAGE plpgsql;
ERROR:  "rca" is not a scalar variable
LINE 6:    GET diagnostics rca[1] = row_count;
                           ^

対処方法

ありません。