我从其他Q / A中找到了制表符值tab_to_string。希望这可以解决问题,但似乎有些不对。
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查询,输入值有时会起作用。当注释中包含大数据时,它会引发错误。
评论是varchar(1024) 最多可以有20条评论。
答案 0 :(得分:0)
您可以尝试使用此查询在Clob中获取评论,并将大小限制为32767。
SELECT
LENGTH(LIST),
LIST
FROM
(
SELECT
SUBSTR(RTRIM(XMLAGG(XMLELEMENT(E, COMMENT, ',').EXTRACT('//text()')).GETCLOBVAL(), ','), 1, 32767) AS LIST
FROM
MYTABLE
);
干杯!