Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production.Как я могу продолжить выполнение команды collect?
У меня есть таблица в нижнем формате.
Number User Value
-------------------
1 A 25
1 B 28
2 C 30
2 D 35
Это то, что я хочу:
Number User Value
-------------------
1 A,B 25,28
2 C,D 30,35
Я попытался с помощью Listagg, но это дает мне ORA-01489: result of string concatenation is too long.
Это была команда listagg:
SELECT "Number",
LISTAGG ("user", ', ') WITHIN GROUP (ORDER BY "user") "user",
LISTAGG ("value", ', ') WITHIN GROUP (ORDER BY "user") VALUE
FROM table
GROUP BY "Number";
Я не могу создать потому что у меня нет привилегий. В одном из других подобных вопросов кто-то предложил использовать сбор. Таким образом, используя это:
SELECT number, CAST (COLLECT (USER) AS SYS.DBMSOUTPUT_LINESARRAY)
FROM emp
GROUP BY number;
Я не знаю, куда идти отсюда. Когда я запускаю этот запрос, я получаю этот столбец:
CAST(COLLECT(USER)ASSYS
-----------------------
COLLECTION
COLLECTION
COLLECTION
Как вы можете видеть, мои знания sql очень минимальны. Любая помощь приветствуется!