WM_CONCAT avec la Clause DISTINCT Compilé par Forfait contre autonome Requête Problème

J'ai écrit un programme qui utilise le WM_CONCAT fonction. Lorsque j'exécute cette requête:

SELECT WM_CONCAT(DISTINCT employee_id)
FROM   employee
WHERE  ROWNUM < 20;

Il fonctionne très bien. Lorsque j'essaie de compiler le relativement même requête dans un paquet de la fonction ou de la procédure, il produit cette erreur: PL/SQL: ORA-30482: DISTINCT option ne permet pas, pour cette fonction

FUNCTION fetch_raw_data_by_range
RETURN VARCHAR2 IS

    v_some_string VARCHAR2(32000);

BEGIN

    SELECT WM_CONCAT(DISTINCT employee_id)
    INTO   v_some_string
    FROM   employee
    WHERE  ROWNUM < 20;

    RETURN v_some_string;

END;

Je me rends compte WM_CONCAT n'est pas officiellement pris en charge, mais quelqu'un peut m'expliquer pourquoi il travail comme un stand alone de requêtes DISTINCTES, mais pas compiler dans un paquet?

Vous devriez être en mesure d'obtenir des résultats similaires avec la LISTAGG fonction.
J'ai marqué ce que oracle10g, qui ne prévoit pas cette fonction

OriginalL'auteur Reimius | 2013-10-24