Bonjour

Je recherche actuellement un moyen de faire une requete ou les noms de colonnes et les valeurs recherchées seraient dynamiques.

Je développe :
J'ai dans une table 6 colonnes nommées lang_fr, lang_en, lang_es, .... je dois rechercher par exemple un mot dans une colonne (imaginons 'developpement' dans la colonne lang_fr) et trouver son correspondant dans une autre langue (qui est définie par un paramettre externe)

Je me suis tournée vers une fonction qui possede une requete dynamique qui est la suivante au moment ou j'ecris ces lignes :


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
21
22
23
24
25
26
27
28
29
30
31
32
BEGIN
	-- Declaration
	DECLARE @ResultatTraduit VARCHAR(max)
	DECLARE @ResultatOrigine VARCHAR(max)
	DECLARE @sql VARCHAR(max)
 
	-- Element a mettre en commentaire à la fin car passerons en paramettre
	DECLARE @langueCible VARCHAR(7)
	DECLARE @langueBase VARCHAR(7)
	DECLARE @motRecherche VARCHAR(max)
	SET @langueCible  = 'lang_en'
	SET @langueBase  = 'lang_fr'
	SET @motRecherche = 'Developpement'
 
	-- Creation d'un curseur qui va recuperer les données
	DECLARE get_lines CURSOR FAST_FORWARD FOR
		SELECT @langueCible, @langueBase FROM t0
 
	-- Pour le resultat recuperé on l'insere dans @ResultatTraduit et on libere le curseur	
	OPEN get_lines
		IF @langueBase = @motRecherche
			FETCH NEXT FROM get_lines
			INTO @ResultatTraduitTraduit,  @ResultatOrigine
	CLOSE get_lines
    DEALLOCATE get_lines
	 print('----')
	 print(@ResultatTraduit)
 
	-- Return the result of the function
	--RETURN @ResultatTraduit
 
END
Le seul resultat que j'obtiens est deux colonnes avec plein de lang_fr dans l'une et plein de lang_en dans l'autre....

Auriez vous une solution pour que je ne remonter bien que mes 2 valeurs souhaitées ?

En vous remerciant à l'avance