Alternatywa Listagg w db2
Mój klient korzysta z bazy danych db2 bez funkcji listagg, ale muszę jakoś zebrać informacje o kluczu podstawowym w jednym polu.
W tej chwili (dla Oracle) używam tego jako części większego zapytania:
SELECT LISTAGG(COLUMN_NAME || ':' || CONTENT, ',')
WITHIN GROUP (ORDER BY COLUMN_NAME || ':' || CONTENT)
FROM TABLE
WHERE ROW_IDENTIFIER_ID = I.REC_ID AND I.TABLE_RESULT_ID = T.REC_ID
Istnieje alternatywny sposób uzyskania wyniku funkcji listagg w bazie danych db2 przed DB2 w wersji 9.7 z pakietem poprawek 41 ?
Wersja bazy danych mojego klienta: Linux - wersja Enterprise Server 9.7, numer wersji 08060107
Dostałem to, wykonując te wybory:
SELECT * FROM TABLE(SYSPROC.ENV_GET_INST_INFO()) AS SYSTEMINFO;
SELECT * FROM TABLE(SYSPROC.ENV_GET_PROD_INFO()) AS SYSTEMINFO;
SELECT * FROM TABLE(SYSPROC.ENV_GET_SYS_INFO()) AS SYSTEMINFO;
Przyznaję, że nie rozumiem, jak to może być 9.7, ale nie ma funkcji listagg ?! :zmieszany:
Wykonałem również:
SELECT * FROM SYSCAT.FUNCTIONS
Wróciłem tolista funkcji, ale nie ma żadnych funkcji takich jak xmltext lub xmlgroup wymienionych w alternatywnych rozwiązaniach w odpowiedziach :(. Jakiej bazy neandertalskiej używa klient? Czy może czegoś mi brakuje?
Dziękuję za odpowiedzi.