use database; ist nur ein beispiel.
Warum kommt nicht das was den Fehler auslöst, sondern ein "Beispiel"?
das "use database;" dient nur der Vollständigkeit, denks dir einfach weg.
Ich kann keinen syntaktischen Fehler an meinem beispiel erkennen. Das DECLARE-Statement sollte auch in Ordnung sein, aber ich kann mich gern eines bessere belehren lassen ;)
SPs ohne Rückgabewerte OK?
ja! Eine SP braucht nicht zwingend einen Rückgabewert, genauso kann die Parameterliste auch leer sein.
hier gerne noch mal ein beispiel:
use bahn24;
DROP PROCEDURE IF EXISTS foo;
CREATE PROCEDURE foo(x INT, y INT, OUT res INT)
BEGIN
DECLARE bla INT;
SET bla = 4711;
SET res = bla;
END
Fehlermeldung:
ERROR 1064 (42000) at line 3: 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 'INT' at line 3