Es gibt da noch einen kleinen Trick.
QMQRY interpretiert den SQL erst nachdem die Variablen gefüllt sind.
Der Inhalt jeder Variable kann bis zu 55 Zeichen lang sein.
Nun kann man also einfach einen QMQRY erstellen:

&V1&V2&V3&V4&V5

Per CLP kann der SQL nun in einer Variablen zusammengebaut werden.
Per "
STRQMQRY ... SETVAR((&V1 (%SST(&MYCLVAR 1 55)) (&V2 (%SST(&MYCLVAR 56 55)) ....)
kann dann jeder beliebige SQL übergeben werden.

Die QM-Berechtigungsprüfung wird somit umgangen, da diese nur beim QMQRY selber vorgenommen wird.
Zur Laufzeit geht QMQRY davon aus, dass diese Prüfung bereits erfolgt ist.

Je nachdem, wie lang der SQL werden kann, soviele Variablen werden benötigt. Aber Achtung: alle Variablen müssen angegeben werden, sie können aber Leerzeichen enthalten.