postgresql: элементы массива в функции
Двумя запросами к таблице бд postgresql получаю нужные данные, например:
select
body::json->'data'->'msg' -- ["txt1", "txt2", "txt3"]
from ...
where ...
;
select
json_array_length(body::json->'data'->'msg') -- 3
from ...
where ...
;
Хочу их получить из функции, делаю так:
arr := ARRAY(select body::json->'data'->'msg' from ... where ...); -- {"[\"txt1\", \"txt2\", \"txt3\"]"}
return array_length(arr, 1); -- 1
Как исправить код в функции, чтобы получить количество элементов массива 3 и перебирать их
так: arr[i]. Нужно отрабатывать null значения, если будет вместо "txt".