Adaptation d'une procédure en fonction
J'ai une procédure que j'ai testé et qui fonctionne correctement (le DELIMITER est fixé à "|") :
Code:
1 2 3 4 5
| CREATE PROCEDURE concatarray(IN f INT,OUT modos VARCHAR(255))
BEGIN
SELECT GROUP_CONCAT(DISTINCT username SEPARATOR ',') AS modos FROM fforums,users WHERE forum_id=f AND FIND_IN_SET(user_id,moderateurs);
END
| |
Plutôt que de faire une fonction qui l'appelle j'aimerais la transformer en une fonction pour l'appeler dans un SELECT mais, quoique je fasse, j'ai une erreur dès le CREATE FUNCTION :?
Code:
1 2 3 4 5 6 7 8 9
| CREATE FUNCTION concatarray(f INT) RETURNS VARCHAR(255)
DECLARE modos VARCHAR(255);
DECLARE cur1 CURSOR FOR SELECT GROUP_CONCAT(DISTINCT username SEPARATOR ',') AS modos FROM fforums,users WHERE forum_id=f AND FIND_IN_SET(user_id,moderateurs);
BEGIN
OPEN cur1;
FETCH cur1 INTO modos;
RETURN modos;
END
| |
Erreur :
ERROR 1864 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE cur1 CURSOR FOR SELECT GROUP_CONCAT(DISTINCT username SEPARATOR ',') AS ' at ligne 1
J'ai essayé sans le DECLARE modos... et j'ai la même erreur.