So ganz verstehe ich das nicht.
Wenn ein Programm für eine bestimmte Aufgabe konzipiert ist, benötigt es keinen dynamischen SQL sondern verarbeitet genau die Daten, die es benötigt.

Gerade variable Feldtypen werden von RPG nicht unterstützt (andere Sprachen bieten den allgemeinen Typ Object/Variant).

Worin soll also die Variablilität bestehen ?

PS:
Selbst Pointer helfen in RPG nicht weiter, da du die Daten zwar lesen aber nicht tatsächlich verarbeiten kannst.

Um "variabel" zu arbeiten kannst du ggf. noch per "char(feld) as feld" alles in Alpha casten. Beim Select zwar unkritisch aber wie siehts dann beim Update/Insert aus ?