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)

Menü