Error 1064 pour fonction.
Bonjour,
Je suis en train de créer un script en MYSQL (version 5.6.17).
Je viens d'avoir une erreur au début du script :
Citation:
Error 1064 (42000) at line 5 : Erreur de syntaxe près de 'BEGIN
DECLARE StartDate DATETIME;
DECLARE EndDate DATETIME;
DECLARE PreceedingOldValue INT DEFAULT 0;
DECLARE Preceedin'
Et voici mon code, qui commence comme ça:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
DROP FUNCTION IF EXISTS getHours;
DELIMITER //
CREATE FUNCTION getHours()
BEGIN
DECLARE StartDate DATETIME;
DECLARE EndDate DATETIME;
DECLARE PreceedingOldValue INT DEFAULT 0;
DECLARE PreceedingNewValue INT DEFAULT 0;
DECLARE CurrentTicket INT DEFAULT 0;
DECLARE NbWorkingDays INT DEFAULT 0;
DECLARE items_id, id, old_value, new_value, id_users INT(10);
DECLARE date_mod, creation_date DATETIME;
DECLARE name VARCHAR(50);
DECLARE NbHours INTEGER DEFAULT 0;
(...)
END;
//
DELIMITER; |
J'ai suivi la documentation MYSQL mais je ne vois pas où ça coince, quelqu'un une idée ?
Merci.
OK! La discussion peut être fermée.
Concernant la récursion, j'ai trouvé, il faut ajouter le nombre de niveaux avant la déclaration de la procédure :
Code:
1 2 3 4 5
| DELIMITER //
SET @@SESSION.max_sp_recursion_depth=25; //
CREATE PROCEDURE ... |
Merci pour tout, mon code marche maintenant !
Comment peut-on faire pour fermer la discussion?
Cdt.
Réponse réglementation procédures :
Oui, c'est ma boîte qui interdit, en principe (réglementation de la boîte), ce n'est pas une contrainte technique.
Cdt.