Смотрите в сторону функции ListAgg - она объединит все значения через разделитель. <br/> Потом останется только обрамить результат в скобки: <br/> <pre><code class="sql">select '[' || ListAgg(item, ',') over (order by rownum) || ']' as item_arr
from table</code></pre> <br/> PS: ListAgg работает с данными, которые можно привести к varchar/varchar2. То есть, у вас есть физическое ограничение в 4000 символов в результирующей строке. Или у вас данные изначально в BLOB/CLOB. <br/> В этих случаях вам нужно использовать хранимую функцию, поскольку в чистом SQL вы не сможете работать с безразмерными атрибутами. <br/> PPS: А вообще, нужно избавиться от JSON и нормализовать таблицу. <br/> PPPS: Если вы делаете API, то формировать JSON для ответа API - это не функция СУБД, этим должна заниматься прослойка перед СУБД.