WM_CONCAT mit DISTINCT-Klausel - Kompiliertes Paket im Vergleich zu Problemen mit eigenständigen Abfragen
Ich habe ein Programm geschrieben, das die WM_CONCAT-Funktion verwendet. Wenn ich diese Abfrage ausführe:
SELECT WM_CONCAT(DISTINCT employee_id)
FROM employee
WHERE ROWNUM < 20;
Es funktioniert gut. Wenn ich versuche, dieselbe Abfrage in einer Paketfunktion oder -prozedur zu kompilieren, wird der folgende Fehler ausgegeben: PL / SQL: ORA-30482: Die Option DISTINCT ist für diese Funktion nicht zulässig
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;
Ich stelle fest, dass WM_CONCAT nicht offiziell unterstützt wird, aber kann jemand erklären, warum es als eigenständige Abfrage mit DISTINCT funktionieren würde, aber nicht in einem Paket kompiliert werden kann?