Как избежать курсора и цикла в PL / SQL, чтобы получить данные в переменной с новой строкой? - PullRequest
0 голосов
/ 31 декабря 2018

Например: у меня есть таблица TBS, имеющая только одно поле COL, содержит 'A' .. 'Z' значений.

Так как есть функция wm_concat(COL), которая дает вывод 'A, B, C,..,Z'это можно хранить в переменной.Аналогично, существует ли какая-либо функция, которая может выдавать выходные данные, такие как

A
B
C
D

и может быть сохранена в переменной.

Примечание : - Я попытался оптимизировать следующеекод в один запрос.

--PL/SQL Code
temp  VARCHAR2(4000):='';
cursor C for select COL from TBS;
BEGIN
for i in C LOOP
    temp := temp || i || CHR(13) || CHR(10);
END LOOP;
END;

1 Ответ

0 голосов
/ 31 декабря 2018

Есть listagg(), где вы можете определить разделитель.

SELECT listagg(col, chr(13) || chr(10)) WITHIN GROUP (ORDER BY col) col
       FROM tbs;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...