Bonjour,

J'ai un petit soucis lors de la création de ma fonction. J'aimerais retourner dans un tableau un certains nombres d’éléments afin d'avoir des indications précises.

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
DELIMITER $$
DROP FUNCTION IF EXISTS modifierIDS();
CREATE FUNCTION modifierIDS() RETURNS INT AS ARRAY
BEGIN
	DECLARE c_id,u_id,compteur_cids,compteur_uids,compteur_egal_ids INT;
	DECLARE c_code,c_raison_sociale,c_lang,c_pays,a_niveau,u_niveau_max,u_ids,c_ids VARCHAR(255);
	DECLARE array_resultats INT AS ARRAY [0];
	DECLARE cur1 CURSOR FOR	SELECT compte.id, user.id, compte.code,compte.raison_sociale,compte.lang,compte.pays,acces.niveau,user.niveau_max,user.ids,compte.ids 
		FROM compte, acces, user 
		WHERE compte.id=acces.id_compte 
		AND acces.id_user=user.id 
		AND acces.niveau = 'superadmin' 
		AND user.niveau_max = 'superadmin' GROUP BY compte.id;
 
 
	OPEN cur1;
	FETCH cur1 INTO c_id, u_id, c_code, c_raison_sociale, c_lang, c_pays, a_niveau, u_niveau_max, u_ids, c_ids;
 
		IF c_ids IS NULL THEN
		@compteur_cids = @compteur_cids + 1;
		SELECT id FROM compte;			
		END IF;
 
		IF u_ids IS NULL THEN
		@compteur_uids = @compteur_uids + 1;
		SELECT id FROM compte;					
		END IF;
 
 
		IF u_ids = c_ids THEN
		@compteur_egal_ids = @compteur_egal_ids + 1;
		SELECT id FROM compte;						
		END IF;
 
	CLOSE cur1;
 
	@array_resultats[1] = @compteur_cids;
	@array_resultats[2] = @compteur_uids;
	@array_resultats[3] = @compteur_egal_ids;
 
	RETURN @array_resultats;
 
END $$
DELIMITER ;

L'erreur qui m'est retourné:

ERROR 1064 (42000): You have an error i
corresponds to your MySQL server versio
CREATE FUNCTION modifierIDS() RETURNS I
BEGIN
DECLARE c_id,u_id,' at line 1

Auriez-vous une idée de où cela pêche ?

Par avance merci
++