Ja, gerne.

1.) Definieren der XML-CLOB-Datei (Streamfile im IFS), eines XML-CLOB Felds als Host-Variable und des Locators als Zeiger.

DCL-S IXMLDoc SQLTYPE(XML_CLOB_FILE);
DCL-S IXMLDta SQLTYPE(XML_CLOB:1024);
DCL-S IXMLLoc SQLTYPE(XML_LOCATOR);

2.) Setzen des Zielpfads und des Dateinamens im IFS, durch die CLOB-Datei Definitionsfelder

DCL-S Xmlpath char(30) inz('/mydir/sql/out/');

IXMLDoc_Name = %trim(Xmlpath) + %trim(FileGroup) + '_' +
%trim(FileId) + '.xml';
IXMLDoc_NL = %Len(%Trim(IXMLDoc_Name));
IXMLDoc_FO = SQFOVR;

3.) Bauen des Selektions-Strings in einer Variablen

sqlstring = 'SELECT XMLDOCUMENT(XMLGROUP(TRIM(Fielda) AS "Host", +
TRIM(Fieldb) AS "Environ", TRIM(Fieldc) AS "Country" +
OPTION ROW "Testrow" ROOT "Testroot")) FROM File';

4.) SQL optionen nach Bedarf setzen

EXEC SQL
Set Option Datfmt=*iso, TimFmt=*iso,Naming=*sys,
CloSQLCsr=*EndActGrp;

5.) SQL Cursor definieren unter Verwendung der obigen Variablen

EXEC SQL
PREPARE selectstm FROM :sqlstring;

6.) Statisch können dann der SQL DECLARE, OPEN des Cursors, FETCH und SET bleiben.
EXEC SQL
DECLARE INXML CURSOR FOR selectstm;
EXEC SQL
OPEN INXML;
EXEC SQL
FETCH NEXT FROM INXML
INTO :IXMLLoc;
EXEC SQL
SET :IXMLDta = :IXMLLoc;
EXEC SQL
SET :IXMLDoc = :IXMLLoc;
EXEC SQL
CLOSE INXML;