OVH Cloud OVH Cloud

Export XML & SQL

3 réponses
Avatar
Not4u
Bonjour,

J'ai une table que j'aimerai exporter en XML.
Ma table ressemble a:

Id | Nom | Cat| Mois | Nom_ex | Note
1 Moi 2 Déc Math 8
1 Moi 2 Déc Geo 6
1 Moi 2 Fév Math 3
1 Moi 2 Fév Geo 5
2 Toi 3 Déc Math 7
2 Toi 3 Déc Geo 2
2 Toi 3 Fév Math 4
2 Toi 3 Fév Geo 7
................

J'arrive à l'exporter mais pas sous la forme que je désire, c'est à dire:

<export>
<Eleve>
<id>1</id>
<Nom>Moi</Nom>
<Cat>2</Cat>
<Mois>
<Nom_Mois>Déc<Nom_Mois>
<Matiere>
<Nom_ex>Math</Nom_ex>
<Note>8</Note>
</Matiere>
<Matiere>
<Nom_ex>Geo</Nom_ex>
<Note>6</Note>
</Matiere>
</Mois>
<Mois>
<Nom_Mois>Fév<Nom_Mois>
<Matiere>
<Nom_ex>Math</Nom_ex>
<Note>3</Note>
</Matiere>
<Matiere>
<Nom_ex>Geo</Nom_ex>
<Note>5</Note>
</Matiere>
</Mois>
</Eleve>
<Eleve>
<id>2</id>
<Nom>Toi</Nom>
<Cat>3</Cat>
<Mois>
<Nom_Mois>Déc<Nom_Mois>
<Matiere>
<Nom_ex>Math</Nom_ex>
<Note>7</Note>
</Matiere>
<Matiere>
<Nom_ex>Geo</Nom_ex>
<Note>2</Note>
</Matiere>
</Mois>
<Mois>
<Nom_Mois>Fév<Nom_Mois>
<Matiere>
<Nom_ex>Math</Nom_ex>
<Note>4</Note>
</Matiere>
<Matiere>
<Nom_ex>Geo</Nom_ex>
<Note>7</Note>
</Matiere>
</Mois>
</Eleve>
</export>

Comment faire cela avec une requete SQL (FOR XML AUTO, ELEMENTS)
J'ai essayé avec l'option EXPLICIT mais je me suis perdu en route ;-)
Merci

3 réponses

Avatar
Philippe T [MS]
Bonjour,

Comme déja dit dans le forum XML, allez regrader dans l'aide de SQL Server
le document portant le titre : ' Using OPENXML'

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"Not4u" wrote in message
news:41b88550$0$6826$
Bonjour,

J'ai une table que j'aimerai exporter en XML.
Ma table ressemble a:

Id | Nom | Cat| Mois | Nom_ex | Note
1 Moi 2 Déc Math 8
1 Moi 2 Déc Geo 6
1 Moi 2 Fév Math 3
1 Moi 2 Fév Geo 5
2 Toi 3 Déc Math 7
2 Toi 3 Déc Geo 2
2 Toi 3 Fév Math 4
2 Toi 3 Fév Geo 7
................

J'arrive à l'exporter mais pas sous la forme que je désire, c'est à dire:

<export>
<Eleve>
<id>1</id>
<Nom>Moi</Nom>
<Cat>2</Cat>
<Mois>
<Nom_Mois>Déc<Nom_Mois>
<Matiere>
<Nom_ex>Math</Nom_ex>
<Note>8</Note>
</Matiere>
<Matiere>
<Nom_ex>Geo</Nom_ex>
<Note>6</Note>
</Matiere>
</Mois>
<Mois>
<Nom_Mois>Fév<Nom_Mois>
<Matiere>
<Nom_ex>Math</Nom_ex>
<Note>3</Note>
</Matiere>
<Matiere>
<Nom_ex>Geo</Nom_ex>
<Note>5</Note>
</Matiere>
</Mois>
</Eleve>
<Eleve>
<id>2</id>
<Nom>Toi</Nom>
<Cat>3</Cat>
<Mois>
<Nom_Mois>Déc<Nom_Mois>
<Matiere>
<Nom_ex>Math</Nom_ex>
<Note>7</Note>
</Matiere>
<Matiere>
<Nom_ex>Geo</Nom_ex>
<Note>2</Note>
</Matiere>
</Mois>
<Mois>
<Nom_Mois>Fév<Nom_Mois>
<Matiere>
<Nom_ex>Math</Nom_ex>
<Note>4</Note>
</Matiere>
<Matiere>
<Nom_ex>Geo</Nom_ex>
<Note>7</Note>
</Matiere>
</Mois>
</Eleve>
</export>

Comment faire cela avec une requete SQL (FOR XML AUTO, ELEMENTS)
J'ai essayé avec l'option EXPLICIT mais je me suis perdu en route ;-)
Merci


Avatar
not4u
Pardon mais je pense que OPENXML sert si l'on veut importer du XML dans
une base de donnée.
'OPENXML provides a rowset view over an XML document...'
La je veux faire l'inverse, exporter une table en XML.

Philippe T [MS] wrote:
Bonjour,

Comme déja dit dans le forum XML, allez regrader dans l'aide de SQL


Server
le document portant le titre : ' Using OPENXML'

Phil.
________________________________________________________
Philippe TROTIN


http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"Not4u" wrote in message
news:41b88550$0$6826$
> Bonjour,
>
> J'ai une table que j'aimerai exporter en XML.
> Ma table ressemble a:
>
> Id | Nom | Cat| Mois | Nom_ex | Note
> 1 Moi 2 Déc Math 8
> 1 Moi 2 Déc Geo 6
> 1 Moi 2 Fév Math 3
> 1 Moi 2 Fév Geo 5
> 2 Toi 3 Déc Math 7
> 2 Toi 3 Déc Geo 2
> 2 Toi 3 Fév Math 4
> 2 Toi 3 Fév Geo 7
> ................
>
> J'arrive à l'exporter mais pas sous la forme que je désire, c'est


à dire:
>
> <export>
> <Eleve>
> <id>1</id>
> <Nom>Moi</Nom>
> <Cat>2</Cat>
> <Mois>
> <Nom_Mois>Déc<Nom_Mois>
> <Matiere>
> <Nom_ex>Math</Nom_ex>
> <Note>8</Note>
> </Matiere>
> <Matiere>
> <Nom_ex>Geo</Nom_ex>
> <Note>6</Note>
> </Matiere>
> </Mois>
> <Mois>
> <Nom_Mois>Fév<Nom_Mois>
> <Matiere>
> <Nom_ex>Math</Nom_ex>
> <Note>3</Note>
> </Matiere>
> <Matiere>
> <Nom_ex>Geo</Nom_ex>
> <Note>5</Note>
> </Matiere>
> </Mois>
> </Eleve>
> <Eleve>
> <id>2</id>
> <Nom>Toi</Nom>
> <Cat>3</Cat>
> <Mois>
> <Nom_Mois>Déc<Nom_Mois>
> <Matiere>
> <Nom_ex>Math</Nom_ex>
> <Note>7</Note>
> </Matiere>
> <Matiere>
> <Nom_ex>Geo</Nom_ex>
> <Note>2</Note>
> </Matiere>
> </Mois>
> <Mois>
> <Nom_Mois>Fév<Nom_Mois>
> <Matiere>
> <Nom_ex>Math</Nom_ex>
> <Note>4</Note>
> </Matiere>
> <Matiere>
> <Nom_ex>Geo</Nom_ex>
> <Note>7</Note>
> </Matiere>
> </Mois>
> </Eleve>
> </export>
>
> Comment faire cela avec une requete SQL (FOR XML AUTO, ELEMENTS)
> J'ai essayé avec l'option EXPLICIT mais je me suis perdu en route


;-)
> Merci


Avatar
Philippe T [MS]
Oups, je n'avais pas bien lu la question, désolé !!! :-(

Dans ces conditions, il faut la jouer dans le genre :

SELECT Eleve.Id, Eleve.Nom, Eleve.Cat, Mois.Mois, Matiere.Nom_ex,
Matiere.Note
FROM Nom_Table as Eleve
INNER JOIN Nom_Table Mois ON Eleve.Id = Mois.Id
INNER JOIN Nom_Table Matiere ON Eleve.Id = Matiere.Id AND Mois.Mois Matiere.Mois AND Eleve.Id = Mois.Id
FOR XML AUTO, ELEMENTS

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

wrote in message
news:
Pardon mais je pense que OPENXML sert si l'on veut importer du XML dans
une base de donnée.
'OPENXML provides a rowset view over an XML document...'
La je veux faire l'inverse, exporter une table en XML.

Philippe T [MS] wrote:
Bonjour,

Comme déja dit dans le forum XML, allez regrader dans l'aide de SQL


Server
le document portant le titre : ' Using OPENXML'

Phil.
________________________________________________________
Philippe TROTIN


http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"Not4u" wrote in message
news:41b88550$0$6826$
> Bonjour,
>
> J'ai une table que j'aimerai exporter en XML.
> Ma table ressemble a:
>
> Id | Nom | Cat| Mois | Nom_ex | Note
> 1 Moi 2 Déc Math 8
> 1 Moi 2 Déc Geo 6
> 1 Moi 2 Fév Math 3
> 1 Moi 2 Fév Geo 5
> 2 Toi 3 Déc Math 7
> 2 Toi 3 Déc Geo 2
> 2 Toi 3 Fév Math 4
> 2 Toi 3 Fév Geo 7
> ................
>
> J'arrive à l'exporter mais pas sous la forme que je désire, c'est


à dire:
>
> <export>
> <Eleve>
> <id>1</id>
> <Nom>Moi</Nom>
> <Cat>2</Cat>
> <Mois>
> <Nom_Mois>Déc<Nom_Mois>
> <Matiere>
> <Nom_ex>Math</Nom_ex>
> <Note>8</Note>
> </Matiere>
> <Matiere>
> <Nom_ex>Geo</Nom_ex>
> <Note>6</Note>
> </Matiere>
> </Mois>
> <Mois>
> <Nom_Mois>Fév<Nom_Mois>
> <Matiere>
> <Nom_ex>Math</Nom_ex>
> <Note>3</Note>
> </Matiere>
> <Matiere>
> <Nom_ex>Geo</Nom_ex>
> <Note>5</Note>
> </Matiere>
> </Mois>
> </Eleve>
> <Eleve>
> <id>2</id>
> <Nom>Toi</Nom>
> <Cat>3</Cat>
> <Mois>
> <Nom_Mois>Déc<Nom_Mois>
> <Matiere>
> <Nom_ex>Math</Nom_ex>
> <Note>7</Note>
> </Matiere>
> <Matiere>
> <Nom_ex>Geo</Nom_ex>
> <Note>2</Note>
> </Matiere>
> </Mois>
> <Mois>
> <Nom_Mois>Fév<Nom_Mois>
> <Matiere>
> <Nom_ex>Math</Nom_ex>
> <Note>4</Note>
> </Matiere>
> <Matiere>
> <Nom_ex>Geo</Nom_ex>
> <Note>7</Note>
> </Matiere>
> </Mois>
> </Eleve>
> </export>
>
> Comment faire cela avec une requete SQL (FOR XML AUTO, ELEMENTS)
> J'ai essayé avec l'option EXPLICIT mais je me suis perdu en route


;-)
> Merci