2
私は以下のpl/pgsql関数を持っています。 (もちろん、これは完全な関数ではありません、それは問題を再現するために必要なコードだけの最小限の量です)forループ内のPL/pgSQL「形式が正しくない配列リテラル」エラー
CREATE OR REPLACE FUNCTION test_func(infos TEXT[][])
RETURNS void AS
$$
DECLARE
info TEXT[];
type TEXT[];
name TEXT;
BEGIN
FOREACH info SLICE 1 IN ARRAY infos LOOP
RAISE NOTICE 'Stuff: %', info;
type := info[1];
name := info[2];
RAISE NOTICE 'Done with stuff';
END LOOP;
RETURN;
END;
$$ LANGUAGE plpgsql;
私はSELECT test_func('{{something, things},{other, data}}'::TEXT[][]);
を使用して機能を実行すると、私は次の出力を得る:
NOTICE: Stuff: {something,things}
ERROR: malformed array literal: "something"
DETAIL: Array value must start with "{" or dimension information.
CONTEXT: PL/pgSQL function test_func(text[]) line 10 at assignment
を
このエラーがどのように起こっているのか分かりません。 info
の値が表示されると、{something,things}
と表示されます。これは適切な配列リテラルであるようです。
私はPostgreSQLバージョン9.4.7を使用しています。