Я пытаюсь структурировать массив в своем вызове postgres, извлекая из таблицы 3 значения (все SMALLINT) и превращая их в массив, чтобы я мог использовать их в оставшейся части вызова, например code_list[0]
.
В настоящее время я только создал эту часть функции, чтобы убедиться, что правильно ее структурирую, прежде чем продолжить.Тем не менее, я получаю эту ошибку error: subquery must return only one column
, которая заставляет меня думать, что я пытаюсь вернуть TABLE.Насколько мне известно, я не могу сохранить таблицу в одно значение, поэтому вместо этого я пытаюсь создать массив.
Правильно ли я создаю массив?Есть ли способ преобразовать это в JSONB, если это будет лучшей стратегией?
CREATE OR REPLACE FUNCTION "RetrieveCodeValues" (
"@code" VARCHAR(50)
)
RETURNS SMALLINT[] AS
$func$
BEGIN
SELECT ARRAY (
SELECT c."big", c."mid", c."small"
FROM "codes" AS c
WHERE "code" = "@code"
) AS code_list;
RETURN code_list;
END;
$func$ LANGUAGE PLPGSQL;