Questo sembra essere correlato al bug 19461687 e questa domanda precedente . Se scarichi il valore aggregato dalla tua query in 11gR2 o 12cR1 vedrai:
LISTAGG_OUTPUT
--------------------------------------------------------------------------------------------------
Typ=1 Len=25 CharacterSet=AL32UTF8: 0,41,0,52,0,34,0,30,0,30,0,31,2c,0,41,0,52,0,34,0,30,0,30,0,32
In SQL*Plus e SQL Developer il valore effettivo viene visualizzato come:
LISTAGG_OUTPUT
----------------------------------------
A R 4 0 0 1, A R 4 0 0 2
e non puoi copiare il valore da SQL Developer. (In 12cR2 gli zeri non compaiono più nel dump, il valore viene visualizzato senza la spaziatura e puoi copiarlo, quindi il bug sembra essere stato corretto.)
Questi byte nulli sembrano far sì che Toad non visualizzi affatto il valore, presumibilmente perché vede il primo byte nullo e lo tratta come un terminatore di stringa (o comunque qualcosa del genere).
SQL Fiddle sembra farcela, ma anche db<>fiddle sembra avere un problema e non restituisce nulla per l'intero violino quando è presente quella query.
Puoi ridefinire la colonna della tabella come varchar2
invece di nvarchar2
, ma presumo che sia quel tipo di dati per un motivo, quindi probabilmente non è pratico.
Quindi potresti invece lanciarlo come parte della query:
SELECT LISTAGG(CAST(MOD_CODE AS VARCHAR2(12)),',')
WITHIN GROUP (ORDER BY MOD_CODE) LISTAGG_OUTPUT
FROM XOTEST_A
WHERE MOD_CODE IN ('AR4001','AR4002');
LISTAGG_OUTPUT
----------------------------------------
AR4001,AR4002
Oppure verifica se la patch per il bug 19461687 risolve il problema per te.