J'ai la procédure stockée comme ceci:
CREATE PROCEDURE ProG()
BEGIN
SELECT * FROM `hs_hr_employee_leave_quota`;
END
Mais cela donne l'erreur:
#1064
- Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de '' à la ligne 3
Qu'est-ce que l'erreur signifie? Quel est le problème avec la ligne numéro 2?
Vous devez modifier le délimiteur avant d'utiliser des déclencheurs, des procédures stockées, etc.
delimiter //
create procedure ProG()
begin
SELECT * FROM hs_hr_employee_leave_quota;
end;//
delimiter ;
Comment savoir ce que cette erreur MySQL essaie de dire:
#1064 - You have an error in your SQL syntax;
Cette erreur ne contient aucun indice. Vous devez revérifier tous ces éléments pour voir où est votre erreur:
!@#$%^&*()-_=+[]{}\|;:'",<>/?
select
, into
ou d'innombrables autres. Enlevez le plus possible la requête brisée jusqu'à ce qu'elle commence à fonctionner. Ensuite, utilisez la prochaine fois que PostgreSQL dispose d’un système de génération de rapports de syntaxe rationnelle.
Délimiteurs, délimiteurs ...
Vous avez vraiment besoin d'eux lorsqu'il y a plusieurs déclarations dans votre procédure. (en d'autres termes, avez-vous un ;
dans votre code, puis plusieurs instructions/commandes? Vous devez ensuite utiliser des délimiteurs).
Pour une procédure aussi simple que la vôtre, vous pouvez simplement faire:
CREATE PROCEDURE ProG()
SELECT * FROM `hs_hr_employee_leave_quota`;
Cela pourrait être un problème de mémoire sur mysql .___. Essayer d'augmenter max_allowed_packet dans my.ini