Fonction Oracle SQL LISTAGG et erreur ORA-01489
La fonction LISTAGG
, utile pour concaténer des chaînes dans Oracle SQL Developer, peut générer l'erreur « ORA-01489 : le résultat de la concaténation de chaînes est trop long ». Cette limitation provient du fait que la sortie de LISTAGG
est limitée à un maximum de 4 000 caractères.
Solution utilisant XMLAGG
Pour dépasser cette limite de 4 000 caractères, utilisez la fonction XMLAGG
comme alternative plus flexible :
<code class="language-sql">SELECT RTRIM(XMLAGG(XMLELEMENT(E, colname, ',').EXTRACT('//text()') ORDER BY colname).GetClobVal(), ',') AS LIST FROM tablename;</code>
XMLAGG
renvoie un type de données CLOB, capable de gérer des longueurs de chaîne beaucoup plus grandes, éliminant ainsi l'erreur ORA-01489
. Cette approche regroupe efficacement de vastes ensembles de données sans les contraintes imposées par LISTAGG
.
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!