Comment modifier LISTAGG à l'appui de plus de 4000 caractères dans la requête select?
Oracle Database 11g Enterprise Edition Version 11.2.0.2.0 - 64bit de Production.
J'ai une table dans le format ci-dessous.
Name Department
Johny Dep1
Jacky Dep2
Ramu Dep1
J'ai besoin d'une sortie dans le format ci-dessous.
Dep1 - Johny,Ramu
Dep2 - Jacky
J'ai essayé le " LISTAGG fonction, mais il est difficile de limite de 4000 caractères. Depuis ma table db est énorme, cela ne peut pas être utilisé dans l'application. L'autre option est d'utiliser le
SELECT CAST(COLLECT(Name)
Mais mon cadre me permet d'exécuter uniquement les requêtes select et pas de PL/SQL scripts.Donc je n'ai pas trouver un moyen de créer un type à l'aide de "CRÉER" TYPE de commande qui est requis pour la collecte de commande.
Est-il un autre moyen pour obtenir le résultat ci-dessus à l'aide de select de la requête ?
OriginalL'auteur anuu_online | 2013-03-28
Vous devez vous connecter pour publier un commentaire.
si vous ne pouvez pas créer des types (vous ne pouvez pas simplement utiliser sql*plus pour créer comme un?), mais vous êtes OK avec de RECUEILLIR, d'utiliser ensuite un construit-dans la gamme. Il y a plusieurs frapper autour dans les SGBDR. exécuter cette requête:
par exemple sur ma db, je peux utiliser
sys.DBMSOUTPUT_LINESARRAY
qui est un varray de taille considérable.tester les deux pour voir lequel est le meilleur pour vous. l'approche XML comme here certains frais généraux.
OriginalL'auteur DazzaL
Vous devez ajouter GetClobVal et doivent également rtrim qu'il sera de retour délimiteur dans la fin des résultats.
OriginalL'auteur Ankur Bhutani
Un dérivé de @anuu_online mais la poignée unescaping le XML dans le résultat.
OriginalL'auteur Ed Thomas
Je me retrouve dans un autre en utilisant l'approche de XMLAGG fonction qui n'a pas la limite de 4000.
Je suis suspect à toute fonction, de manière flagrante brandit le mot GAL dans son schéma d'affectation de noms.
OriginalL'auteur anuu_online
Pour IBM DB2, Casting le résultat d'un varchar(10000) donnera plus de 4000.
OriginalL'auteur Gomez NL