Gestion des erreurs dans Oracle : ORA-01489 : le résultat de la concaténation de chaînes est trop long
L'erreur ORA-01489 d'Oracle se produit lorsque le résultat de une concaténation de chaînes dépasse la longueur maximale autorisée. Cependant, cette erreur peut parfois être trompeuse.
Cas 1 : Dépassement de la limite SQL
La limite SQL par défaut pour la concaténation de chaînes est de 4 000 octets. La concaténation de chaînes au-delà de cette limite déclenche l'erreur ORA-01489. Cela s'applique également à la fonction LISTAGG.
Solution de contournement :
Utilisez XMLAGG au lieu de LISTAGG, car cela permet des chaînes concaténées plus grandes.
Cas 2 : Concaténation de plusieurs colonnes longues
Si vous êtes En concaténant plusieurs colonnes dont chacune dépasse 4 000 octets, le résultat peut toujours déclencher l'erreur.
Solution de contournement :
Concaténez la sortie XMLAGG de chaque colonne pour éviter la limite SQL. Par exemple :
SELECT rtrim(xmlagg(XMLELEMENT(e,col1,',').EXTRACT('//text()') ).GetClobVal(), ',') || rtrim(xmlagg(XMLELEMENT(e,col2,',').EXTRACT('//text()') ).GetClobVal(), ',') AS very_long_text FROM DATA GROUP BY ID ORDER BY ID;
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!