Вы забыли объявить i
, есть несколько бесполезных "
, и вы пытаетесь перебрать переменную jsonb.
Предполагая, что fpo_data
имеет сохраненный массив jsonb, попробуйте это :
CREATE OR REPLACE FUNCTION file_compare()
RETURNS TEXT LANGUAGE 'plpgsql' COST 100 VOLATILE AS $BODY$
DECLARE
fpo_data jsonb;
i JSONB;
BEGIN
SELECT json_agg((fpdata))::jsonb
FROM (SELECT fo_data AS fpdata
FROM fpo LIMIT 100
) t INTO fpo_data;
FOR i IN SELECT * FROM jsonb_array_elements(fpo_data) LOOP
RAISE NOTICE 'output from space %', i;
END LOOP;
RETURN fpo_data;
END;
$BODY$;
Редактировать : Чтобы извлечь только элемент bene_first_name
в операторе уведомления о повышении, просто выполните:
RAISE NOTICE 'output from space %', (i->>0)::JSONB->'bene_first_name';