Maison > base de données > tutoriel mysql > Comment XMLAGG peut-il surmonter l'erreur « ORA-01489 : le résultat de la concaténation de chaînes est trop long » lors de l'utilisation de LISTAGG dans Oracle SQL ?

Comment XMLAGG peut-il surmonter l'erreur « ORA-01489 : le résultat de la concaténation de chaînes est trop long » lors de l'utilisation de LISTAGG dans Oracle SQL ?

Mary-Kate Olsen
Libérer: 2025-01-18 17:01:09
original
539 Les gens l'ont consulté

How Can XMLAGG Overcome the

Oracle SQL : gestion de la concaténation de chaînes excessivement longues avec XMLAGG

La fonction LISTAGG d'Oracle est un outil utile pour combiner des valeurs de chaîne en une seule liste séparée par des virgules. Cependant, il est limité par une longueur maximale de chaîne. Lorsque le résultat concaténé dépasse cette limite, une erreur « ORA-01489 : le résultat de la concaténation de chaîne est trop long » se produit.

Ce problème est apparu lors de la tentative de concaténation de données WEB_LINK à l'aide de LISTAGG dans Oracle SQL Developer. Le champ WEB_LINK, contenant des tiges d'URL et des requêtes combinées, entraînait souvent des chaînes dépassant la longueur autorisée.

La solution ? La fonction XMLAGG. Contrairement à LISTAGG, XMLAGG renvoie un CLOB (character large object), capable de gérer des chaînes beaucoup plus longues, supprimant ainsi les limitations du nombre de lignes.

Voici la requête révisée utilisant XMLAGG :

<code class="language-sql">SELECT RTRIM(XMLAGG(XMLELEMENT(E, colname, ',').EXTRACT('//text()') ORDER BY colname).GetClobVal(), ',') AS LIST
FROM tablename;</code>
Copier après la connexion

Cette approche agrège et concatène avec succès les données, même avec des chaînes très longues, renvoyant le résultat sous forme de CLOB. Cela fournit une alternative robuste à LISTAGG lorsqu'il s'agit de concaténation de chaînes potentiellement surdimensionnée dans les tâches d'agrégation de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal