Я нашел tab_to_string в других Q / A для значений агрегации.надеюсь, что это решит проблему, но, похоже, что-то не так.
CREATE OR REPLACE TYPE FMF_VERIFY5.t_varchar2_tab AS TABLE OF VARCHAR2(32767);
CREATE OR REPLACE FUNCTION FMF_tab_to_string (p_varchar2_tab IN t_varchar2_tab,
p_delimiter IN VARCHAR2 DEFAULT ',') RETURN VARCHAR2 IS
l_string VARCHAR2(32767);
BEGIN
FOR i IN p_varchar2_tab.FIRST .. p_varchar2_tab.LAST LOOP
IF i != p_varchar2_tab.FIRST THEN
l_string := l_string || p_delimiter;
END IF;
l_string := l_string || p_varchar2_tab(i);
END LOOP;
RETURN l_string;
END tab_to_string;
/
SELECT ID, tab_to_string(CAST(COLLECT(COMMENTS ORDER BY DATE DESC) AS t_varchar2_tab),'//') AS COMMENTS
FROM TABLE
Вышеупомянутый запрос SELECT время от времени работает на основе входного значения.похоже, что когда комментарий содержит большие данные, он выдает ошибку.
COMMENT - это varchar (1024), и может быть до 20 комментариев.