Mit dem XML Extender können Sie das gesamte XML-Dokument aktualisieren, indem Sie die XML-Spaltendaten ersetzen, oder Sie können die Werte der angegebenen Elemente oder Attribute aktualisieren.
Task-Übersicht:
Wichtig: Beim Aktualisieren einer Spalte, die für XML aktiviert ist, aktualisiert der XML Extender automatisch die Seitentabellen, um diese Änderungen nachzuvollziehen. Aktualisieren Sie diese Tabellen nicht direkt, ohne das in der XML-Spalte gespeicherte Original-XML-Dokument durch Ändern des entsprechenden XML-Elements oder -Attributwerts zu aktualisieren. Solche Aktualisierungen können zu Problemen mit der Konsistenz der Daten führen.
So aktualisieren Sie ein XML-Dokument:
Verwenden Sie eine der folgenden Methoden:
Beispiel: Aktualisiert den Typ XMLVARCHAR aus dem umgesetzten Typ VARCHAR; dabei wird davon ausgegangen, daß xml_buf eine als Typ VARCHAR definierte Host-Variable ist.
UPDATE sales_tab VALUES('123456', 'Sriram Srinivasan', db2xml.XMLVarchar(:xml_buff))
Beispiel: Mit dem folgenden Beispiel wird ein XML-Dokument über die Funktion XMLVarcharFromFile() aktualisiert:
UPDATE sales_tab set order = XMLVarcharFromFile('c:\dxx\samples\cmd\getstart.xml') WHERE sales_person = 'Sriram Srinivasan'
In diesem Beispiel wird das XML-Objekt aus der Datei c:\dxx\samples\cmd\getstart.xml in die Spalte ORDER in der Tabelle SALES_TAB aktualisiert.
Im Abschnitt Tabelle 10 finden Sie eine Liste der vom XML Extender bereitgestellten Speicherfunktionen.
So aktualisieren Sie spezifische Elemente und Attribute eines XML-Dokuments:
Verwenden Sie die UDF Update() zum Angeben spezifischer Änderungen, statt das gesamte Dokument zu aktualisieren. Mit der UDF geben Sie einen Standortpfad und den Wert des Elements oder Attributs an, für das der zu ersetzende Standortpfad steht. (Die Syntax für den Standortpfad ist im Abschnitt Standortpfad beschrieben.) Sie brauchen das XML-Dokument nicht zu editieren: Der XML Extender nimmt die Änderungen für Sie vor.
Update(xmlobj, pfad, wert)
In diesem Beispiel:
Beispiel: Mit der folgenden Anweisung wird der Wert des Elements <Customer> mit der UDF Update() auf die Zeichenfolge IBM aktualisiert:
UPDATE sales_tab set order = Update(order, '/Order/Customer/Name', 'IBM') WHERE sales_person = 'Sriram Srinivasan'