Bonjour,

Voilà, j'ai une fonction, que j'ai déjà exécutée plusieurs fois sans problème, et là, celle-ci me met une erreur du type 1064 à la ligne 29 : the right syntax to use near ''. Je ne vois pas du tout d'où vient le problème... Elle ne veut plus se compiler... Si quelqu'un peut m'éclaircir, ça serai gentil

PS: J'ai la version de MySQL: 5.0.51a sous phpmyadmin

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
51
DROP FUNCTION IF EXISTS fdiag_patients_p;
-
CREATE FUNCTION fdiag_patients_p(p_h_ipp VARCHAR(16)) RETURNS CHAR(2)
BEGIN
DECLARE res CHAR(2);
DECLARE var_delta DECIMAL(4,1);
DECLARE var_isth_class VARCHAR(20);
DECLARE var_delta_prec DECIMAL(4,1);
DECLARE var_num_dossier VARCHAR(64);
DECLARE b BOOLEAN DEFAULT false;
DECLARE done TINYINT DEFAULT 0;
DECLARE curseur2 CURSOR FOR SELECT NUM_DOSSIER_GLIMS, delta, isth_class FROM  Prelev_Multiples WHERE h_ipp = p_h_ipp;
 
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
 
OPEN curseur2;
 
FETCH curseur2 INTO var_num_dossier, var_delta, var_isth_class;
SET var_delta_prec = var_delta;
 
REPEAT
   FETCH curseur2 INTO var_num_dossier, var_delta, var_isth_class;
   IF NOT done THEN
		IF b THEN
			IF var_isth_class != 'APS_Negative' AND var_isth_class IS NOT NULL THEN
				SET res = 'mp';
			END IF;
		ELSE
			SET var_delta = var_delta - var_delta_prec ;
			IF (var_delta BETWEEN 12 AND 260) THEN
				IF var_isth_class = 'APS_Negative' THEN
					SET res = 'mm';
					SET b = true;
				ELSE
					IF var_isth_class IS NOT NULL THEN
						SET res = 'p';
						SET done = 1;
					END IF;
				END IF;
			END IF;
		END IF;
		SET var_delta_prec = var_delta;
   END IF;    
UNTIL done END REPEAT;
 
CLOSE curseur2;
RETURN (res);
END
 
 
-