私はintの配列を受け取り、他の関数を呼び出してそれを繰り返す次の関数を持っています:
CREATE FUNCTION calculateAbsencesForIDs(INT[]) RETURNS TEXT AS
'
DECLARE
index integer := 0;
resultArray decimal[];
id int;
result text;
BEGIN
FOR id IN SELECT $1 LOOP
resultArray[index] = calculateAbsenceForID(id);
index := index + 1;
END LOOP;
RETURN array_to_string(resultArray, result);
END;
'
LANGUAGE plpgsql;
私はそれを使用して呼び出しようとします:
SELECT calculateAbsencesForIDs(ARRAY[85,74,75,76,77,78,79,80]);
また
SELECT calculateAbsencesForIDs('{85,74,75,76,77,78,79,80}');
また
SELECT calculateAbsencesForIDs('{85,74,75,76,77,78,79,80}'::int[]);
...
しかし、私はいつも同じエラーがあります:
[Error Code: 0, SQL State: 22P02] ERROR: invalid input syntax for integer: "{85,74,75,76,77,78,79,80}"
この関数を呼び出す方法がわかりません。私はpostgresのドキュメントを見てきましたが、これは正しいと思いますが、うまくいきません。