Bonjour,

je génère du code XML via une procédure stockée sur un Oracle 10 g R1 sous linux Red hat.
Lors d'un fecth d'un curseur j'ai un problème mémoire sur un sort des données générant une erreur de type ORA-04030: mémoire de traitement manquante lors d'affectation de 4008 octets (kxs heap,kokeglb: kokegPinLob).

Ci-dessous mon curseur:
Cursor C_FICPT_AG is
(SELECT qry3b.codetare, XMLAgg((resultat3b) order by substr(resultat3b,1,50)).getClobVal() as resultat3 FROM (SELECT rz_f_ficpt_cara_genprel.codetare, (XMLElement(name "FGenPre_Caract_Compteur",
XMLElement(name "NumCarCo", rz_f_ficpt_cara_genprel.numcarco),
XMLElement(name "Car",rz_f_ficpt_cara_genprel.car),
XMLAgg(XMLElement(name "FGenPre_Valeur_Caract_Compteur",
XMLElement(name "NumPriEa", rz_f_ficpt_cara_genprel.numpriea),
XMLElement(name "ValCarCo",rz_f_ficpt_cara_genprel.valcarco)
) order by rz_f_ficpt_cara_genprel.numpriea)
) ) as resultat3b
FROM rz_f_ficpt_cara_genprel, rz_f_genprel
WHERE rz_f_ficpt_cara_genprel.codetare=rz_f_genprel.codetare and rz_f_genprel.cappli='AG' and substr(rz_f_genprel.codetare,1,2)=w_numdep
GROUP BY rz_f_ficpt_cara_genprel.codetare,numcarco,car) qry3b
GROUP BY qry3b.codetare);

sans l'order by en rouge cela fonctionne bien.

La table rz_f_ficpt_cara_genprel contient 97896 rows
La table rz_f_genprel contient 12113 rows

je fetch le résultat en bulk collect dans un tableau interne de type clob.
puis j'insere dans une table temporaire de clob.

ma sort_area est positionnée sur 2 Mo

merci de votre aide