Wie erfolgt die Transformation von XML-Daten in SQL-Tabellen
Bis vor kurzem, wenn es um die Beziehung zwischen SQL und XML zu denken, hat sich der Schwerpunkt gewesen auf die Umwandlung von SQL-Tabellendaten in XML, um es über das Internet zugänglich zu machen. SQL: 2008 adressiert das komplementäre Problem der XML-Daten in SQL-Tabellen konvertieren, so dass es leicht mit Standard-SQL-Anweisungen abgefragt werden können. Das XMLTABLE Pseudo-Funktion führt diesen Vorgang. Die Syntax für XMLTABLE ist:
XMLTABLE ([Namensraum-Deklaration] XQuery-Ausdruck [PASSING Argumentliste] -Säulen XMLtbl-column-Definitionen
wo die Argumentliste ist:
Wertausdruck AS-Kennung
und XMLtbl-column-Definitionen ist eine durch Kommata getrennte Liste von Spaltendefinitionen, die enthalten:
Spaltenname FÜR Ordinalität
und / oder:
Spaltenname Datentyp [BY REF | BY VALUE] [default-Klausel] [PATH XQuery-Ausdruck]
Hier ist ein Beispiel dafür, wie man verwenden könnte, XMLTABLE Daten aus einem XML-Dokument in ein SQL pseudo-Tabelle zu extrahieren. Eine Pseudo-Tabelle ist nicht persistent, aber in jeder anderen Hinsicht, es verhält sich wie eine normale SQL-Tabelle. Wenn Sie wollen, dass es dauerhaft zu machen, können Sie eine Tabelle mit einem erstellen CREATE TABLE Anweisung und fügen Sie dann die XML-Daten in die neu erstellte Tabelle.
SELECT clientphone. * FROMclients_xml, XMLTABLE ( 'für $ m in $ col / clientreturn $ m'PASSING clients_xml.client AS "col" Columns "Clientname" CHARACTER (30) PATH' Client "," Telefon "CHARACTER (13) PATH ' Telefon ') AS clientphone
Wenn Sie diese Anweisung ausführen, sehen Sie das folgende Ergebnis:
Client Telefon ------------------------------ ------------- Abe Abelson (714) 555-1111Bill Bailey (714) 555-2222Chuck Wood (714) 555-3333 (3 Reihen in clientphone)