... das for construct mit einem cursor ist eine Leseschleife über alle Sätze und kettet hier Werte in einem String aneinander.
Das Performanceproblem resultiert m.E. aus der in ihr wohnenenden Rekursion. Kannst Du mal die zu Grunde liegende Anforderung beschreiben, vielleicht ist es dann einfacher eine adäquate Lösung zu finden.

D*B