2010-08-18 5 views
0

La base de données possède une table EMP avec 3 colonnes empID, badgID, XMLDATA.Comment lire l'attribut XML d'une TABLE?

Le XMLDATA ont datatype « clob » et des données est sous la forme -

<Record id="11"> 
    <Demo rID="5"/> 
</Record> 

Comment puis-je lire l'attribut valeur « Rejetez loin » dans node « Demo » dans le XMLDATA ci-dessus seule requête?

serveur - SQL Server 2005

+1

Si vous code ou XML postez, ** S'il vous plaît ** mettre en évidence les lignes dans l'éditeur de texte et cliquez sur le bouton « code » (101 010) sur la barre d'outils de l'éditeur pour bien mettre en forme et la syntaxe le mettre en évidence! –

+1

Quel est le type de données actuel? 'clob' n'est pas un type de données SQL Server autant que je sache. –

+0

Sérieusement - type de données "CLOB" ?? Pour autant que je sache, SQL Server n'a pas cela - nous avons 'IMAGE, TEXT, NTEXT' (tout obsolète) ou alors' (N) VARCHAR (MAX) 'ou' VARBINARY (MAX) 'ou' XML' - Alors, qui est-ce vraiment ?? –

Répondre

2

Si vous avez vos données stockées avec type XML dans SQL Server, vous pouvez le faire:

SELECT 
    empID, badgID, 
    XmlData.value('(/Record/Demo/@rID)[1]', 'int') as 'rID' 
FROM 
    dbo.YourTable 

Si votre type de données est pas XML - vraiment devrait être! Vous pourriez avoir besoin d'utiliser quelque chose comme ça (pourrait ne pas fonctionner dans tous les cas):

SELECT 
    empID, badgID, 
    (CAST XmlData AS XML).value('(/Record/Demo/@rID)[1]', 'int') as 'rID' 
FROM 
    dbo.YourTable 
+0

Merci. J'ai essayé les deux requêtes, elle échoue et dit "schéma XMLDATA n'existe pas." Mais la colonne XMLDATA est présente dans la table. – indigenious

+0

@indigenious: pouvez-vous nous montrer la structure réelle de la table, par ex. un diagramme de base de données ou quelque chose ?? –

+0

Mes excuses, je n'ai accès en lecture à la base de données et je ne connais pas l'architecture. – indigenious