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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
select * from dbo.xml_genFile()
Une idée ?