Comment transformer les données XML dans des tables SQL

Jusqu'à récemment, en pensant à la relation entre SQL et XML, l'accent a été mis sur la conversion des données de la table SQL en XML pour les rendre accessibles sur Internet. SQL: 2008 a abordé le problème complémentaire de convertir des données XML dans des tables SQL de sorte qu'il peut être facilement interrogé à l'aide d'instructions SQL standard. La XMLTABLE pseudo-fonction effectue cette opération. La syntaxe de XMLTABLE est:

XMLTable ([déclaration_namespace,] XQuery-expression [PASSAGE l'argument-list] Des colonnes XMLtbl-column-définitions

où l'argument-list est:

valeur expression comme identifiant



et XMLtbl-column-définitions est une liste séparée par des virgules de définitions de colonnes, qui peut contenir:

colonne-nom pour ordinalité

et ou:

nom-colonne de type de données [PAR REF | PAR VALUE] [défaut article] [CHEMIN XQuery-expression]

Voici un exemple de la façon dont vous pourriez utiliser XMLTABLE pour extraire des données à partir d'un document XML dans un pseudo-table SQL. Un pseudo-table est pas persistant, mais à tous autres égards, il se comporte comme une table SQL régulière. Si vous voulez rendre persistant, vous pouvez créer une table avec une CREATE TABLE déclaration et puis insérez les données XML dans la table nouvellement créée.

Clientphone SELECT. * FROMclients_xml, XMLTABLE ('M $ en $ col / clientreturn $ m'PASSING clients_xml.client AS "col" colonnes "NomClient" Caractères (30) PATH' ClientName »,« Téléphone »CARACTERE (13) PATH ' téléphone ') AS clientphone

Lorsque vous exécutez cette déclaration, vous voyez le résultat suivant:

ClientName Téléphone ------------------------------ ------------- Abe Abelson (714) 555-1111Bill Bailey (714) 555-2222Chuck Bois (714) 555-3333 (3 lignes dans clientphone)

» » » » Comment transformer les données XML dans des tables SQL