Isso parece estar relacionado ao bug 19461687 e esta pergunta anterior . Se você despejar o valor agregado de sua consulta em 11gR2 ou 12cR1, verá:
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
No SQL*Plus e no SQL Developer, o valor real é exibido como:
LISTAGG_OUTPUT
----------------------------------------
A R 4 0 0 1, A R 4 0 0 2
e você não pode copiar o valor do SQL Developer. (No 12cR2 os zeros não aparecem mais no dump, o valor é exibido sem o espaçamento e você pode copiá-lo, então o bug parece ter sido corrigido.)
Esses bytes nulos parecem estar fazendo com que o Toad não exiba o valor, presumivelmente porque ele vê o primeiro byte nulo e o trata como um terminador de string (ou algo nesse sentido).
O SQL Fiddle parece lidar com isso, mas db<>fiddle também parece ter um problema com ele e não retorna nada para o violino inteiro quando essa consulta está presente.
Você pode redefinir sua coluna de tabela como
varchar2
em vez de nvarchar2
, mas suponho que seja esse tipo de dados por um motivo, então isso provavelmente não é prático. Então, você pode convertê-lo como parte da consulta:
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
Ou veja se o patch para o bug 19461687 corrige o problema para você.