Salut,

Je veux créer une fonction SQL sous MySQL, mais j'ai cette erreur :
#1415 - Not allowed to return a result set from a function
voici mon code de création de la fonction
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
DELIMITER //
CREATE FUNCTION funct_id_stockdate(idExercice int, magasin varchar(50)) RETURNS varchar(25) DETERMINISTIC
BEGIN
    DECLARE val1 int;
    DECLARE val2, val3, val4, val5 varchar(25);
    -- Récupération de la dernièr valeur de val_seq pour la table StockDate
    SELECT val_seq INTO val1 FROM param_seq WHERE tables = 'StockDate';
    SET val1 = val1 + 1;
    -- Début formatige de la valeur auto-incrément sous le format 0001, 0002 , ..., 9999   
    IF(val1 < 10) THEN
    	SELECT CONVERT(val1, char);
        SET val2 = CONCAT('000',val1);
    ELSEIF(val1 <100 AND val1>9) THEN
        SELECT CONVERT(val1, char);
        SET val2 = CONCAT('00',val1);
    ELSEIF(val1 <1000 AND val1>99) THEN
        SELECT CONVERT(val1, char);
        SET val2 = CONCAT('0',val1);
    ELSE
    	SELECT CONVERT(val1, char);
        SET val2 = val1;
    END IF;
    -- Fin formatage
    -- conversion id EXERCICE en chaine de caractère
    SELECT CONVERT(idExercice, char);
    -- récupération des 3 premières lettre du nom du Magasin en majuscule
    SET val3 = SUBSTR(UPPER(magasin), 1, 3);
    -- Concaténation de l'ID exercice et 3 premières lettre du nom du Magasin en majuscule
	SET val4 = CONCAT(idExercice,val3);
    -- concaténation de la chaine précédente (val4) et la chaine auto-incrément
    SET val5 = CONCAT(val4,val2);
 
     RETURN val5;
END//
DELIMITER ;
Toutes les recherches que j'ai effectué me parle de la non utilisation de INTO dans une requête SELECT. Et pourtant dans mon cas j'ai respecté cette condition.