SELECT PURPOSE_CODE , MAX(ATTR_NAME) ATTR_LIST FROM
(
SELECT PURPOSE_CODE , SUBSTR(SYS_CONNECT_BY_PATH(PRIVACY_ATTRIBUTE_NAME , ' , ') , 2) ATTR_NAME , LEVEL
FROM
(
SELECT D.PURPOSE_CODE , E.PRIVACY_ATTRIBUTE_NAME , ROWNUM RNUM , LAG(ROWNUM , 1) OVER (PARTITION BY
D.PURPOSE_CODE ORDER BY D.PURPOSE_CODE) AS CONNECT_ID
FROM FND_PURPOSE_ATTRIBUTES D , FND_PRIVACY_ATTRIBUTES_VL E
WHERE D.PRIVACY_ATTRIBUTE_CODE = E.PRIVACY_ATTRIBUTE_CODE
--AND D.PURPOSE_CODE = 'TELE_SALES'
)
START WITH CONNECT_ID IS NULL
CONNECT BY PRIOR RNUM = CONNECT_ID
)
GROUP BY PURPOSE_CODE