使用 LISTAGG/XMLAGG 未按预期工作

Using LISTAGG/XMLAGG not working as expected

LISTAGG 正在使用 < 4000 但不是 > 4000。当我尝试给出 XMLAGG 而不是 LISTAGG 时,它不起作用。

SELECT LISTAGG( 
    CONCAT(
        CONCAT( 
            ( 
                SELECT CONCAT( USER_FIRST_NM, CONCAT(',', USER_LAST_NM) )
                FROM USER_TABLE
                WHERE USER_LOGONID = USER_ID
            ), 
            CONCAT( ' - ', TO_CHAR(CREATED_DATE, 'DD-MON-YY HH:MI AM'))
        ),
        CONCAT(chr(10), NOTES) 
    ),
    chr(10)
) WITHIN GROUP (
    ORDER BY 
    MOBILES,
    created_date ASC
) NOTES
FROM MOBILES_notes
WHERE MOBILES_ELEMENT = :p1
ORDER BY CREATED_DATE

XMLAGG() 连同 XMLELEMENT() 函数可用于大数据,例如

SELECT RTRIM(DBMS_XMLGEN.CONVERT(
       XMLAGG(
                XMLELEMENT(e, 
                CONCAT(CONCAT((SELECT CONCAT(user_first_nm,
                                           CONCAT(',', user_last_nm))
                               FROM USER_TABLE
                              WHERE user_logonid = user_id),
                             CONCAT(' - ',
                                    TO_CHAR(created_date,
                                            'DD-MON-YY HH:MI AM'))),
                      CONCAT(CHR(10), NOTES))||CHR(10)                
                ) ORDER BY mobiles, created_date
               ).EXTRACT('//text()').GETCLOBVAL() ,1),',') AS notes
  FROM mobiles_notes
 WHERE mobiles_element = :p1
 ORDER BY created_date