Mag nicht state of the art sein, aber meine Verfahren laufen so:

dow 1=1; // früher Do *hival
fetch ...
if sqlcode <> *zero;
leave;
endif;

// towas
if error;
iter;
endif;

enddo:

Vorteile:
- Bei Fehlern/nicht zuverarbeitenden Daten kann ich einfach an den Anfang springen.
- SQLCODE ist für die Schleifen nicht relevant.