Task-Übersicht:
Der XML Extender bietet zwei Methoden zum Abrufen von Daten:
Tabelle 12. Die XML Extender-Standardumsetzungsfunktionen
In SELECT-Klausel verwendete Umsetzung | Rückgabetyp | Beschreibung |
---|---|---|
varchar(XMLVARCHAR) | VARCHAR | XML-Dokument in VARCHAR |
clob(XMLCLOB) | CLOB | XML-Dokument in CLOB |
varchar(XMLFile) | VARCHAR | XML-Dateiname in VARCHAR |
EXEC SQL SELECT db2xml.varchar(order) from sales_tab
Wenn Sie beispielsweise Ihr XML-Dokument als XMLFILE gespeichert haben und im Hauptspeicher damit arbeiten wollen, können Sie die UDF Content() verwenden, die den Datentyp XMLFILE als Eingabe verwenden und CLOB zurückgeben kann.
Die UDF Content() führt je nach dem angegebenen Datentyp zwei verschiedene Abruffunktionen aus:
XMLFILE to CLOB: Ruft Daten aus einer Datei ab und exportiert sie in eine CLOB-Zeigereinheit.
Content(xmlobj XMLFile)
XML-Typ to external file: Ruft den als Datentyp XML gespeicherten XML-Inhalt ab und exportiert ihn in eine externe Datei.
Content(xmlobj XML-Typ, dateiname varchar(512))
Hierbei gilt folgendes:
In dem folgenden Beispiel verdeutlicht ein kleines C-Programmsegment mit eingebettetem SQL-Code, wie ein XML-Dokument aus einer Datei in den Hauptspeicher abgerufen wird. Bei diesem Beispiel wird davon ausgegangen, daß die Spalte BOOK den Datentyp XMLFILE hat.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS CLOB_LOCATOR xml_buff; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO SALES_DB EXEC SQL DECLARE c1 CURSOR FOR SELECT Content(order) from sales_tab EXEC SQL OPEN c1; do { EXEC SQL FETCH c1 INTO :xml_buff; if (SQLCODE != 0) { break; } else { /* beliebige Aktion mit dem XML-Dok im Puffer ausführen */ } } EXEC SQL CLOSE c1; EXEC SQL CONNECT RESET;