Stavo scrivendo un programma che utilizza la funzione WM_CONCAT. Quando eseguo questa query:WM_CONCAT con clausola DISTINCT - Pacchetto compilato contro query standalone Edizione
SELECT WM_CONCAT(DISTINCT employee_id)
FROM employee
WHERE ROWNUM < 20;
Funziona correttamente. Quando provo a compilare la relativamente stessa query in una funzione pacchetto o procedura, produce questo errore: PL/SQL: ORA-30482: l'opzione DISTINCT non consentita per questa funzione
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;
mi rendo conto WM_CONCAT non è ufficialmente supportato ma qualcuno può spiegare perché avrebbe funzionato come query indipendente con DISTINCT, ma non in un pacchetto?
Si dovrebbe essere in grado di ottenere simili risultati con la funzione LISTAGG. – OldProgrammer
L'ho taggato come oracle10g, che non fornisce quella funzione – Reimius