Convertir du XML en chaîne de caractères NVARCHAR en SQL





10-26-2016, 06:20 PM (Ce message a été modifié le : 05-17-2017 02:54 PM par EO-Manager.)
Message : #1

Chat_128x128 Convertir du XML en chaîne de caractères NVARCHAR en SQL


Sous SQL Server 2008 ou SQL Server 2012 il est parfois intéressant de mixer des colonnes numériques avec des colonnes en XML pour une utilisation particulière. Pour faire une requête plus facilement il est pratique de convertir la colonne de type XML en NVARCHAR pour pouvoir la filtrer. Comment convertir une colonne XML en NVARCHAR ?

Exemple sans conversion implicite du XML vers NVARCHAR



Par exemple avec un fichier XML d'exmple comme celui-ci :
DECLARE @mon_xml XML;
DECLARE @ma_chaine NVARCHAR(500);
SET @mon_xml =
'<entreprise>
<employes>Dupont</employes>
<employes>Durant</employes>
</entreprise>';
SET @ma_chaine = @mon_xml ;
SELECT @ma_chaine;

Un erreur est retournée :
Implicit conversion from data type xml to varchar is not allowed. Use the CONVERT function to run this query.


Solution avec l’utilisation de la fonction SQL Server CONVERT vers le type NVARCHAR()


Avec cette solution simple on peut effectuer une requête sur des données de type XML et même faire une recherche avec les fonctions de filtre comme LIKE par exemple.
DECLARE @mon_xml XML;
DECLARE @ma_chaine VARCHAR(500);
SET @mon_xml =
'<entreprise>
<employes>Dupont</employes>
<employes>Durant</employes>
</entreprise>';
SET @ma_chaine = CONVERT(VARCHAR(500), @mon_xml);
SELECT @ma_chaine as RESULTAT;
Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse


Articles ou discussions similaires
Découper une chaîne de caractères de colonne vers des lignes en SQL