Dynamische Arrays gibts in RPGLE nicht.
Beim Fetch musst du noch "for n rows" angeben, damit das Array gefüllt wird.
Ich glaube in SQLERR3 steht dann die Anzahl der gelesenen Sätze.
Das Ganze nennt man im Übrigen Block-Fetch.

Ansonsten berechne mal die Größe für deinen Alloc, der darf 16MB nicht übersteigen.