У меня есть функция, которая получает PK, имя динамической таблицы и JSON. Динамическая таблица создана ранее. Мне нужно ввести данные, полученные в этой таблице, для этого я использую EXECUTE FORMAT, но я не знаю, как использовать SELECT, чтобы бросить все JSON в таблицу. JSON имеет несколько объектов.
Вот пример кода:
CREATE FUNCTION FUNC_TEST(COD_FK BIGINT,
NAME_TABLE TEXT,
JSON JSONB)
RETURNS VOID
LANGUAGE plpgsql
AS
$$
BEGIN
EXECUTE FORMAT(
'INSERT INTO public.%I (
COD_FK,
A,
B,
C) L%',
NAME_TABLE,
(SELECT COD_FK,
(SRC ->> 'A') :: TEXT,
(SRC ->> 'B') :: BIGINT,
(SRC ->> 'C') :: TEXT
FROM JSONB_ARRAY_ELEMENTS(JSON) SRC));
END
$$;
Возвращаемая ошибка:
ERROR: subquery must return only one column.
Как выполнить эту вставку?