SQL Server : Problème encodage XML
Bonjour,
Je voudrais extraire des données depuis SQL Server et les enregistrer en fichier XML.
Tout fonctionne très bien, hormis que le contenu xml récupéré est "utf-8" au lieu de "ISO-8859-15", donc je perd tous les accents.
Voici mes requêtes :
Fonction retournant le contenudu XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| CREATE FUNCTION [xml_genFile]()
RETURNS TABLE
AS
RETURN
( SELECT '<?xml version="1.0" encoding="ISO-8859-15" ?> <Societes><Societe Num="0" Nom="Siège">' as 'Noeud'
UNION ALL SELECT(
select Technicien.[Num] as Num,Technicien.[Nom] as Nom,dbo.xml_getDetails (Technicien.[Num]) as Certifs
from DB1.dbo.Tech Technicien
for xml auto
)
UNION ALL SELECT('</Societe>')
UNION ALL SELECT(
select Societe.[Num],Societe.[Nom],'Non-généré' as [Commentaire],Technicien.[Num] as Num,Technicien.[Nom] as Nom,dbo.xml_getDetails (Technicien.[Num]) as Certifs
from DB2.dbo.SOCIETE Societe,DB2.dbo.ST Technicien
where Societe.Num=Technicien.NumSociete
group by Societe.[Num],Societe.[Nom] ,Technicien.[Num],Technicien.[Nom]
for xml auto
)
UNION ALL SELECT('</Societes>')
) |
Procédure enregistrant dans un fichier XML :
Code:
1 2 3 4 5 6 7 8 9 10 11
| CREATE PROCEDURE [xml_genFileServer]
AS
BEGIN
DECLARE @sql varchar(1000)
DECLARE @chemSaveXml varchar(200)
DECLARE @cmd varchar(200)
select @chemSaveXml='\\Chemin\fichier.xml'
select @sql = 'bcp "select * from dbo.xml_genFile()" queryout "'+cast(@chemSaveXml as varchar(200))+'" -c -U"myUser" -P"myPwd" -S "myServer"'
exec master..xp_cmdshell @sql
END |
La requête ci-dessous génère bien le fichier XML, mais en utf-8 :
Code:
exec dbo.xml_genFileServer
Cependant, si j'exécute la requête ci-dessous dans SQL Server, la fenêtre de résultats prend bien en compte les accents :
Code:
select * from dbo.xml_genFile()
Une idée ?