Bonjour à tous,

Je suis bloqué sur cette requête récursive. A chaque exécution. L'erreur suivante m'est renvoyée:
Msg*240, Niveau*16, État*1, Procédure*Act_PathFinder3, Ligne*148
Les types ne correspondent pas entre la partie d'ancrage et la partie récursive dans la colonne "j_Way" de la requête récursive "journey".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
create table   #Temp_Def_Section_Runtime 
(			
	 [Source]		varchar(max)
	,[Destination]	varchar(max)
	,[Type_ID]		int
	,[Groupe01]		varchar(100)
	,[Groupe02]		varchar(100)
)
...

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
;WITH
journey (j_Dest, j_Step, j_Type_ID, j_Way) 
AS
(
	SELECT DISTINCT 
			Source
			,0
			,0
			,cast (@Source  as varchar(max)) 
    FROM	#Temp_Def_Section_Runtime
    WHERE	Source = @Source
 
    UNION  ALL 
 
    SELECT	destination
			,departure.j_Step + 1
			,Type_ID
			,cast(departure.j_Way +','+ cast(arrival.Destination as varchar(max))  as varchar(max))    
 
	FROM   #Temp_Def_Section_Runtime AS arrival
           inner JOIN journey AS departure
                 ON departure.j_Dest = arrival.Source

Je comprend bien que le problème vient d'une différence de format entre l'ancrage et la récursivité sur la colonne j_way mais je ne vois pas pourquoi...
J'ai essayé de nombreuses et différentes façons de poser le CAST as varchar mais le résultat est toujours le même.

Si j'utilise une table 'physique' à la place de la table temporaire précédemment décrite, cela fonctionne. A n'y rien comprendre !!!

Merci d'avance pour votre aide.

COrdialement