Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
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 22/12/2011, 16h44   #1
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : janvier 2011
Messages : 48
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2011
Messages : 48
Points : 13
Points : 13
Par défaut type XML couple valeur

Bonjour,
je dois réaliser une procédure stockée.

Elle doit contenir une jointure sur des couples de valeurs.
On m'a conseillé d'utiliser le type XML afin d'envoyer à la procédure stockée ces couples de valeurs afin d'avoir un type xml de ce type:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<Objets>
<Objet>
<attribut1>valeur</attribut1>
<attribut2>valeur</attribut2>
<Objet>
<Objet>
<attribut1>valeur</attribut1>
<attribut2>valeur</attribut2>
<Objet>
......
.....
Avez vous une idée de comment réaliser cette jointure? et comment créer l'objet xml...?
Kirua76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 11h39   #2
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 751
Points : 751
Vous êtes sur d'être sur le bon forum ?
Quel est votre query en l'état ?
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 08h53   #3
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : janvier 2011
Messages : 48
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2011
Messages : 48
Points : 13
Points : 13
Oui je suis sur le bon forum, j'ai déja utilisé le type XML en Sql Server mais avec une liste de valeur, la il faut que je l'utilise avec une liste de couple de valeur.
Kirua76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 11h55   #4
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 670
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 670
Points : 8 732
Points : 8 732
Bonjour,

C'est effectivement possible avec SQLXML et XQuery.

Soit la table d'exemple suivante :

Code :
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE maTable
(
	i int
	, j int
	, dummy varchar(32)
)
GO
 
INSERT INTO dbo.maTable VALUES (1, 2, 'toto')
INSERT INTO dbo.maTable VALUES (3, 4, 'titi')
GO
Et la procédure stockée suivante :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE PROCEDURE maProc
	@document xml
AS
BEGIN
	SET NOCOUNT ON
 
	;WITH
		CTE AS
		(
			SELECT	D.DATA.value('./attribut1[1]', 'int') AS i
				, D.DATA.value('./attribut2[1]', 'int') AS j
			FROM	@document.nodes ('Objets/Objet') AS D(DATA)
		)
	SELECT		T.dummy
	FROM		CTE AS C
	INNER JOIN	dbo.maTable AS T
				ON C.i = T.i
				AND C.j = T.j
END
GO
Un exemple d'exécution serait :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DECLARE @document xml
SET @document = N'
<Objets>
	<Objet>
		<attribut1>1</attribut1>
		<attribut2>2</attribut2>
	</Objet>
	<Objet>
		<attribut1>3</attribut1>
		<attribut2>4</attribut2>
	</Objet>
</Objets>'
 
EXEC dbo.maProc @document
Ce qui retourne :

dummy
--------------------------------
toto
titi

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 14h22   #5
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : janvier 2011
Messages : 48
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2011
Messages : 48
Points : 13
Points : 13
je n'ai pas encore testé mais c'est exactement ce qu'il me fallait, merci beaucoup.
Kirua76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h51.


 
 
 
 
Partenaires

Hébergement Web