データをテキストとして取得し、postgresql関数から配列として返す必要があります。クリップのメディアテーブルにファイルがあり、クリップIDごとにメディアクリップからすべてのファイルを取得したいと考えています。私はこのような機能を作成しました:SQL関数のループからデータを取得する方法
CREATE OR REPLACE FUNCTION clips_media_array(INT)
RETURNS text[] AS $$
DECLARE
r clips_media%ROWTYPE;
t text[];
BEGIN
FOR r IN
SELECT file_name
FROM clips_media WHERE id_clips = $1 AND file_type = 2
LOOP
t := t.file_name;
END LOOP;
END;
$$
LANGUAGE plpgsql;
と私はエラーがあります: ERROR: invalid input syntax for integer: "bfeO4RbZ5R1CUT8.jpg" CONTEXT: PL/pgSQL function clips_media_array(integer) line 6 at FOR over SELECT rows
誰もこれで私を助けてもらえますか?
が(エラーメッセージと一致していませんあなたのコードあなたのコードでは 'over'もありません)。しかし、あなたはこれのためにループも関数も必要ありません。単純な 'select array_agg(file_name)from clips_media where ...'はうまくいくでしょう –