Verstehe ich das richtig?
Erstellst eine Tabelle mit einer XML-Spalte, in die Du dann über einen Insert das XML-Statement schreibst.
Im Anschluss willst Du diese Tabelle bzw. das XML-Dokument im IFS speichern?
Wenn das Deine Idee ist, warum der Umweg über eine Tabelle und warum nicht direkt ins IFS schreiben. Mit (embedded) SQL ist das ein 3-Zeiler. Das komplizierteste ist das SQL-Statment zu generieren.
In dem folgenden Beispiel wird ein XML-Dokument generiert und direkt ins IFS geschrieben.
Code:
DCL-S MyXMLDoc SQLType(XML_CLOB_File);
Exec SQL Set Option Commit=*None, DatFmt=*ISO, TimFmt=*ISO,
Naming=*SYS, CloSQLCsr=*EndActGrp;
//****************************************************************************
Clear MyXMLDoc;
MyXMLDoc_Name = '/home/YourDir/YourXML.xml';
MyXMLDoc_NL = %Len(%Trim(MyXMLDoc_Name));
MyXMLDoc_FO = SQFOVR; //Neue IFS Datei oder vorh. ersetzen
Exec SQL
Select XmlDocument
(xmlgroup(EmployeeNo as "PersNo",
Trim(Trim (FirstName) concat ' ' concat
Trim(Name)) as "PersName",
Address as "Street",
ZipCode as "ZipCode",
City as "City"
Order By City Desc, Name
Option Row "Employee"
Root "Staff"))
into :MyXMLDoc
From LobStaff;
If SQLCODE < *Zeros;
Dsply 'Fehler';
else;
Dsply 'XML Document erstellt';
EndIf;
*InLR = *On;
Bookmarks