Bonjour,
J'aborde les procédures et fonctions MySQL et j'ai un petit problème :
Je souhaite parcourir un champ VARCHAR(20) d'une table et concaténer ce qui est trouvé à une variable puis retourner cette variable :
J'ai une erreur :
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 DELIMITER $$ DROP FUNCTION IF EXISTS `cdf`.`essaif`$$ CREATE FUNCTION `cdf`.`essaif` () RETURNS TEXT BEGIN DECLARE liste TEXT DEFAULT ''; DECLARE psn TEXT DEFAULT ''; LOOP SELECT probeset_name INTO psn FROM probeset; SET liste = CONCAT(liste, psn); END LOOP; RETURN liste; END$$ DELIMITER ;
Par ailleurs, je n'ai pas cette erreur si je passe le code en tant que procédure, mais j'ai une erreur de renvoi de plusieurs lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
Sauriez-vous par ailleurs comment gérer le stockage et renvoi de plusieurs lignes (sur plusieurs occurences d'une table) au sein d'une procédure (j'utilisais %ROWTYPE avec PostgreSQL et un type RECORD pour le renvoi) ?
En vous remerciant,
C. Tobini
Partager