Я пытаюсь заставить функцию COLLECT работать для меня. Я использую 10g и поэтому обнаружил, что LISTAGG и WM_CONCAT не будут работать (неправильные ошибки идентификатора). Данные, которые у меня есть, например, следующие.Как использовать COLLECT с VARCHAR2 Oracle 10g
Order Lot
123 A23088
123 A23089
089 AABBCC
305 120848
305 CCDDYY
Что мне нужно Возвращаются следующим
Order Lot
123 A23088, A23089
089 AABBCC
305 120848, CCDDYY
Используя следующее, я получаю ошибку: TO_STRING является неверным идентификатором
TO_STRING (CAST(COLLECT(DISTINCT LOT) AS varchar2(100))) AS LOT
Используя следующее, я получаю ошибку : ожидаемые CHAR "непоследовательные типы данных: ожидаемые% s получены% s"
TO_CHAR (CAST(COLLECT(DISTINCT LOT) AS varchar2(100))) AS LOT
Используя следующее, я получаю ошибку: ожидаемое число «несогласованные типы данных: ожидалось% s% s получил»
COLLECT(DISTINCT WHSE_LOT)
Есть ли способ, чтобы получить эту функцию, чтобы работать для меня?
Спасибо за помощь @AlexPoole. Я нашел это решение для работы с одним исключением - возвращаются не только отдельные значения. Например, 'SELECT order_no, tab_to_string (CAST (COLLECT (DISTINCT lot) AS t_varchar2_tab)) AS LOT FROM table1 WHERE order_no = 590288 GROUP BY order_no;' Возвращает Order_No Lot 590288 2016535,2016535,6016535,2016538,2016538 Любые предложения? – ESC
@ESC - обновлено, чтобы передать коллекцию через 'SET()' для удаления сульфитов, поскольку 10g не распознает 'COLLECT (DISTINCT ...)'. –