Extraction des valeurs de champ XML dans MS-SQL Server 2008
Je suis d'essayer d'extraire des informations à partir d'un MS-SQL Server 2008 de la base de données qui est stocké dans un seul champ XML. C'est la première fois que j'ai jamais eu à travailler avec XML, donc je vais avoir un peu de mal et c'est pourquoi je n'ai que les données que je suis en train de les extraire. J'ai essayé d'utiliser d'autres offres pour résoudre mon problème, mais évidemment avec pas de chance.
Les quatre morceaux de l'information est d'abord le "Project Manager", puis la "Valeur" et puis 2e est le "Centre de Profit" et la valeur. La valeur de "Centre de Profit" va être utilisé pour faire une jointure entre deux tables. Ci-dessous est un échantillon de données XML qui est stocké dans ce domaine.
<ArrayOfEntityPropertyOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EntityPropertyOfString>
<Name>Project Manager</Name>
<Value>DBD</Value>
</EntityPropertyOfString>
<EntityPropertyOfString>
<Name>Profit Center</Name>
<Value>211</Value>
</EntityPropertyOfString>
</ArrayOfEntityPropertyOfString>
Donc, dans cet exemple, j'ai besoin d'utiliser le "Centre de Profit" valeur "211" pour joindre les deux tables le tout dans un MS-SQL de la requête. Le tableau que cette information peut être appelé "tblProfitCenter" et le domaine de la tenir "prftData".
Voici une requête qui ferait le même travail si les données dans "prftData" n'était pas dans le XML, mais au lieu de cela était un champ de type entier holding de centre de profit id et effectuer la jointure.
SELECT md.LName, md.FName, pc.ProfitCenterName
FROM tblMainDataCenter md
LEFT OUTER JOIN tblProfitCenter pc ON md.pcID = pc.prftData
C'est pour un projet où je travail et de la nécessité d'être en mesure de déplacer au-delà de cette. Normalement, je devrais être à l'apprentissage XML pour résoudre ce problème, mais le temps nous le permet pas. Jusqu'à ce que je reçois une chance d'apprendre le XML, je vous serais reconnaissant de toute aide.
OriginalL'auteur Nosharu | 2013-07-26
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
value
fonction sur une colonne XML pour extraire des données à partir du XML comme ceci:en supposant que votre table est nommée
tbl
et la colonne XML est nommécol
.Le premier argument est une expression XPath 1 expression, et la seconde, le type de données cible. Veuillez noter que ces chaînes doit être corrigé chaînes dans SQL Server et ne peut pas être construit dynamiquement e. g. par la concaténation de chaîne.
OriginalL'auteur FrankPl
La requête suivante vous permettra de prendre le contenu xml et de les mettre dans un format de table de sorte que vous pouvez ensuite effectuer les opérations sql sur la table:
OriginalL'auteur Petio Ivanov