Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Outils
Outils Forum d'entraide sur les outils gravitant autour de MS-SQL Server, tels que bcp, TDS, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/05/2011, 19h56   #1
Invité de passage
 
Inscription : septembre 2009
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 6
Points : 1
Points : 1
Par défaut SQL Server 2000 : FOR XML EXPLICIT & BCP

Bonjour,

Je rencontre un problème avec la mise en forme d'un fichier XML généré à partir d'une requête "FOR XML EXPLICIT" et copié dans un fichier via BCP.

Les données sont correctes mais il y a régulièrement des retour chariot qui coupent les lignes. Et donc le fichier XML est faux si la coupure a lieu en plein milieu d'une balise par exemple.

Je suppose que çà doit venir des lignes qui sont trop longues... Déjà, dans le fichier obtenu, toutes les données sont sur "une ligne", le fichier n'est pas indenté, mais çà, c'est pas vraiment gênant. Est-ce qu'il y a une taille maximale pour une ligne dans un fichier? (ce qui pourrait expliquer les retours à la ligne)

Si j'indente le fichier pour que ce soit plus lisible, voilà ce que çà donne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<BALISE>
	<ATTRIBUT1>....</ATTRIBUT1>
	<ATTRIBUT2>....</ATTRIBUT2>
	<ATTRIBUT3>....</ATTRIBUT3>
</BALISE>
<BALISE>
	<ATTRIBUT1>....</ATTRIBUT1>
	<ATT
RIBUT2>....</ATTRIBUT2>
	<ATTRIBUT3>....</ATTRIBUT3>
</BALISE>
Forcement, le fichier n'est donc pas exploitable puisque j'ai le nom d'une balise "coupée" sur deux lignes.

La table ExportXML contient plus de 4.000 lignes et une vingtaine de colonne. Le fichier xml généré fait 3Mo. La requête utilisée pour formater les données au format XML :
Code :
SET @sSQL = 'SELECT * FROM ExportXML FOR XML EXPLICIT'
La commande utilisée pour stocker le résultat dans un fichier via BCP :
Code :
1
2
3
 
SET @CmdExec = 'BCP "' + @sSQL + '" queryout"'+ @repDestination + @ficNom  + '" -S ' + @ServerBDD + '-U sa -P ' + @PWD + '  -t"|" -c'
EXEC @STATUS = master..xp_cmdshell @CmdExec, NO_OUTPUT
D'où peut provenir le problème? de XML EXPLICIT? de BCP? Y'a des options à spécifier peut-être pour résoudre le problème?

PS : si je mets qu'une vingtaines de lignes par exemple dans la table ExportXML, il y a pas de soucis.
Laotzu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h52.


 
 
 
 
Partenaires

Hébergement Web