Was die Pointer angeht, so muss ich sogar via SQLDA Pointer angeben (nebst SQLType und Attributen).
Somit kann ich auch schön per %ALLOC Speicher zur Verfügung stellen.
SQLDA's werden dann per "using" bei den entsprechenden SQL-Befehlen angegeben.
Dann kann ich eben auch innherhalb von RPGLE wiederum mit Pointern umgehen.

Zu beachten ist noch folgendes:
In meinem Beispiel habe ich 8MB Unicode (CCSID 1200) verwendet. Sollte die Datei tatsächlich mal größer sein, sollte man hier dann mit LOB-Locator umgehen: GET_[DB/C]LOB_FROM_FILE.
Der Vorteil des Locator's besteht halt darin, dass das Lesen der Datei und die Codewandlung in den Speicher nur 1x passiert.
Anschließend kann man sich per SQL-Stringfunktionen dann die Teile herausholen.
Dies dürfte wohl performanter sein, als sich die Daten scheibchenweise aus der Datei zu holen, zumal bei UTF-8 eine Zeichenposition direkt ja nicht errechenbar ist (UTF-8 => 1-4Byte je Zeichen).