Débutant et problèmes de procédures / fonctions
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 :
Code:
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 ; |
J'ai une erreur :
Code:
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) |
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.
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