Wenn wir immer noch beim gleichen Problem sind und der andere Benutzer weiterhin den folgenden Fehler bekommt:
1 -- Das externe Programm oder Serviceprogramm hat SQLSTATE 42926
zurückgegeben. Die vom Programm zurückgegebene Textnachricht ist: LOB- und XML-Lokatoren sind mit COMMIT(*NONE) nicht zulässig.

... liegt es daran, dass in der Umgebung des Benutzers nicht unter Commitment Control gearbeitet wird.

Versuch doch einfach mal am Ende des INSERT Statements WITH CS hinzuzufügen.
Dann sollte das Insert Statement auch bei dem anderen Benutzer unter Commimtent Control ausgeführt werden, auch dann wenn in dieser Umgebung ohne Commitment Control gearbeitet wird.

Da das INSERT-Statement bei Dir funktioniert, gehe ich davon aus, dass die Tabelle in einem Journal hinterlegt ist.

Für die Verarbeitung in RPG würde ich für einen "kleinen" CLOB (65535 Zeichen) eine CLOB-Variable definieren und dann die Daten mit einem SELECT ... INTO, SET oder VALUES(...) INTO in diese CLOB-Variable ausgeben.
Code:
DCL-S  CLOBVariableName  SQLTYPE(CLOB: LängederCLOBVariablen)
Die CLOB-Variable wird vom SQL-Precompiler in eine Datenstruktur konvertiert, mit den folgenden Unter-Feldern:
CLOBVariableName_LEN UNS(10) => Datenlänge
CLOBVariableName_DATA (CHAR (LängeDerClobVariablen)) => Daten

Mit dem CLOBVariableName_DATA-Unter-Feld kann man in RPG ganz normal arbeiten und u.a. die Daten als Parameter an die nächste Prozedur durchreichen.

Was vielleicht noch zu bedenken wäre. Bei dem Datentypen XML handelt es sich um keinen String, sondern um eine interne Representation des XML.
Wenn Du das XML als Text (bzw. in RPG als CLOB) brauchst, musst Du das XML zunächst mit XMLSERIALIZE konvertieren.
Wenn Du das XML, so wie es ist in RPG übernehmen willst musst Du die Variable mit dem Datentypen XML_CLOB (und Länge) definieren. Auch hier wird eine Datenstruktur mit den beiden Unterfeldern _LEN und _DATA gebildet ... und _DATA wann mit RPG verarbeitet werden.

Birgitta