Zdá se, že to souvisí s chybou 19461687 a touto předchozí otázkou . Pokud vypíšete agregovanou hodnotu z vašeho dotazu v 11gR2 nebo 12cR1, uvidíte:
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
V SQL*Plus a SQL Developer se skutečná hodnota zobrazí jako:
LISTAGG_OUTPUT
----------------------------------------
A R 4 0 0 1, A R 4 0 0 2
a nemůžete zkopírovat hodnotu z SQL Developer. (V 12cR2 se nuly již ve výpisu neobjevují, hodnota se zobrazuje bez mezer a můžete ji zkopírovat, takže se zdá, že chyba byla opravena.)
Zdá se, že tyto nulové bajty způsobují, že Toad vůbec nezobrazuje hodnotu, pravděpodobně proto, že vidí první nulový bajt a zachází s ním jako s ukončovacím řetězcem (nebo tak jako tak).
Zdá se, že SQL Fiddle si s tím poradí, ale zdá se, že s tím má problém i db<>fiddle, a pokud je tento dotaz přítomen, nevrací nic pro celé housle.
Sloupec tabulky můžete předefinovat na varchar2
místo nvarchar2
, ale předpokládám, že z nějakého důvodu je to tento datový typ, takže to pravděpodobně není praktické.
Místo toho byste to mohli přenést jako součást dotazu:
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
Nebo se podívejte, zda oprava chyby 19461687 problém nevyřeší.