Bonjour,



ça fait vraiment un bail que je n'ai pas fait du transact sql, j'essaie de faire une procédure contenant un curseur, cette procédure doit afficher la première ligne de résultats avec une accolade au début de la ligne et la dernière ligne avec une accolade de fermeture , sachant qu'il y aura des virgule entre les lignes au milieu.

je bloque sur cette procédure depuis pas mal de temps le sql server m'affiche plein d'erreurs comme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Msg 102, Niveau 15, État 1, Procédure affichage_pingFlow, Ligne 24
Incorrect syntax near '='.
Msg 102, Niveau 15, État 1, Procédure affichage_pingFlow, Ligne 25
Incorrect syntax near ')'.

voici mon code :
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
create procedure affichage_ping (@author_id id) as
 
DECLARE @pkt_ctrl_nbr int
DECLARE @date_creat varchar(10) 
DECLARE @CurrentRow int
DECLARE @ProcessRow int
DECLARE @ActualRow int
DECLARE @msg varchar(120)
 
set @ActualRow=0;
 
--decalartion du curseur de l'extraction
DECLARE ping_Cursor CURSOR FOR
	select pkt_ctrl_nbr,CONVERT(VARCHAR(10), create_date_time, 120)
	from inpt_pkt_hdr
where proc_stat_code = 10;
 
OPEN ping_Cursor
set @ProcessRow=@@rowcount;
FETCH ping_Cursor INTO @pkt_ctrl_nbr, @date_creat
WHILE @@FETCH_STATUS = 0
begin
	while(@ActualRow<@ProcessRow)
	if( @ProcessRow = 0)
		select @msg= '['+@pkt_ctrl_nbr+'", "CREATION":"'+ @pkt_ctrl_nbr)+'"},'
		print @msg;
		@ProcessRow++
 
	else if (@ProcessRow==@@rowcount)
		select @msg= @pkt_ctrl_nbr+'", "CREATION":"'+ @pkt_ctrl_nbr)+'"}]'
		@ProcessRow++;
		print @msg;
		@ProcessRow++
 
	else
		select @msg= @pkt_ctrl_nbr+'", "CREATION":"'+ @pkt_ctrl_nbr)+'"}'
		print @msg;
		@ProcessRow++
 
 
end
 
 
 
 
--SET NOCOUNT ON;
 
close ping_Cursor
DEALLOCATE ping_Cursor


je cherche à savoir comment corriger ces erreurs de syntaxe mais aussi à voir si mon algo est correcte merci