Bonjour à tous,

Alors voilà mon problème, j'ai une table de 2 colonnes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 ----------------------------
|   Colonne 1    |  colonne 2  |
 ----------------------------
|   A               |   1             |
|   A               |   2             |
|   B               |   1             |
|   B               |   3             |
 ----------------------------
Je veux que à chaque valeur distincte de la première colonne la colonne 2 soit transformé en ligne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 ----------------------------
|   Colonne 1    |  colonne 2  |
 ----------------------------
|   A               |   1;2          |
|   B               |   1;3          |
 ----------------------------
Popur celà j'ai trouvé sur internet un ensemble de fonction:
- concat_all
- sort_string

associé à 2 types
- concat_expr
- concat_all_ot

cette ensemble de fonction s'utilise de la fonction suivante.
1) concat_all = concatène toute les valeurs de la colonne2
2) sort_string = tri et élimine les doublons

dans l'exemple donné il n'y a pas de doublons mais dans le vrai cas si et je ne peux faire autrement (c'est un postulat).

bien que le code soit du chinois pour moi, il marche très bien
et je n'avais aucun souci.

Seulement je me suis trouvé à concaténer une colonne qui au cours de la concaténation retournait une variable de longueur supérieur à 4000.
Comme la fonction concat_all utilise des VARCHAR2, le programme plante avant d'avoir pu supprimer les doublons(sort_string) et insérer les valeurs dans la table.


Donc ma question est comment concaténer une colonne qui renvoie une chaine de longueur > 4000 avant la suppression des doublon?