Da nun mal ILERPG native nicht mehr als 16MB für eine einzelne Variable/DS zulässt, sich per Teraspace durchaus aber 4GB am Stück allokieren lässt, kommt man dann um Pointer nicht herum.
Verwendet man SQL muss man mit LOB_LOCATOR arbeiten. Dies ist leider kein Pointer (10U) und man muss mit SUBSTR die Teildaten per SQL extrahieren, das geht auch vom bereits geladenen LOB_LOCATOR.
Bis max. 16MB kann man per SQLTYPE(CLOB:16000000) die Daten auch direkt per Fetch auslesen.
Man erhält dann eine DS mit 2 Feldern:
D*X1 S SQLTYPE(CLOB:16000000)
DX1 DS
DX1_LEN 10U 0
DX1_DATA A LEN(16000000)

so dass man in X1_LEN direkt die Länge von X1_DATA bekommt und keine zusätzlichen Funktionsaufrufe benötigt.

Ansonsten:
1 DS/Variable kann max. 16MB groß werden, aber davon kann man durchaus mehrere definieren.