У меня есть таблица А с одним столбцомOracle Преобразование строк таблицы в список
**TableA**
Row1
Row2
Row3
.....
Я должен преобразовать строки таблицы в виде списка и хранить их в переменных. Чтобы они сохранялись как
Row1,Row2,Row3,....,Rown
Я использовал функцию listagg() для достижения решения.
DECLARE
tbl_list CLOB;
BEGIN
SELECT listagg (''''||Column_name||'''',',') WITHIN GROUP (ORDER BY Column_name) INTO TBL_LIST FROM TableA;
END;
Это прекрасно работает, если в таблице А есть несколько строк. Но если таблица имеет много строк я получаю следующее сообщение об ошибке
ORA-01489: result of string concatenation is too long
Является ли это из-за лимит хранения переменной TBL_LIST? Может ли кто-нибудь объяснить мне, что не так. И есть ли альтернатива для lisagg(), для достижения результата, я хочу?
Тип what - имя_колонны? Почему вам нужно преобразовать строки таблицы в список? – Mihai
Можете посмотреть на это [Методы агрегирования строк] (https://oracle-base.com/articles/misc/string-aggregation-techniques), если вы хотите пойти на другие методы – Crazy2crack
column_name - varchar2, мне нужны строки, которые должны быть упорядочивается как список (row1, row2, ....), потому что я передаю переменную tbl_list другому процессу, который принимает входные данные в виде списка – Saroj