PDA

View Full Version : [MySQL] MySQL 5 e STORED PROCEDURE


race2
17-11-2005, 08:44
ho scaricato "mySQL 5.0.15" e ho provato a eseguire una STORED PROCEDURE:


CREATE PROCEDURE myProc ()
BEGIN
SELECT Nome,Cognome FROM Anagrafiche;
END



eseguo con "MySQL-Front" e mi restituisce il seguente errore:



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 'END' at line 1


devo settare qualcosa nel Database ???
Cosa sbaglio ???

breiko
17-11-2005, 22:00
Prova a mettere begin nella prima riga (cioè non andare a capo).

[begin_label:] BEGIN
[statement_list]
END [end_label]

Io ho perso 8 ore della mia vita per capire che il THEN dell'IF andava nella stessa riga dell'IF.

Bye

guldo76
17-11-2005, 22:49
mmh... però non si lamenta della mancanza del BEGIN, come dovrebbe logicamente fare se breiko avesse ragione; si lamenta dell'END.
Secondo me vuole il punto e virgola anche dopo l'END, come Oracle.

Facci sapere :)

breiko
18-11-2005, 00:00
No no mi sembra che si debba mettere il punto e virgola dopo l'END.

Altra cosa da provare se non funziona è questa.
La query infatti potrebbe essere eseguita fino al primo punto e virgola, quindi non viene visto l'END.
Dovresti usare DELIMITER (da linea di comando funziona, da PhpMyAdmin no per esempio).

DELIMITER $
CREATE PROCEDURE myProc () BEGIN
SELECT Nome,Cognome FROM Anagrafiche;
END
$

Gremo
18-11-2005, 00:44
ho perso 8 ore della mia vita per capire che il THEN dell'IF andava nella stessa riga dell'IF.

Bye

abbiamo perso 8 ore della nostra vita :D :D :(

prova a fare come dice breiko che da linea di comando funziona perfettamente ;)

cmq puppis :ave:

race2
18-11-2005, 10:27
Scusate il ritardo!!!

Non so cosa dire ma ora funziona benissomo come ho postato in precedenza,

credo che era un po IMPEDITO il mio "MySQL-Server",

ma in cambio e sorto un altro tipo di errore!!!

al primo sbaglio di sintassi o altro che causa un messaggio di errore mi si pianta tutto e continua a dare errore persino se torno indietro al codice esatto..., devo riavviare il servizio di "mysqld.exe" se voglio ripartire, sara colpa del "MySQL-Front" o del "MySQL" che e' bacato ???