In Datenbank gespeicherte Funktion erstellen -> Syntax Error | Wer hilft?

jerry6600

Neuer Benutzer
Beiträge
4
Hallo, ich habe folgendes Problem (es ist eigentlich ein kleiner Syntax Error, aber ich komme nicht dahinter wo der Fehler liegt. Ich nehme an, ich sehe den Wald vor lauter Bäumen nicht.) :

Ich möchte folgende Funktion erstellen und in der Datenbank import_export abspeichern.
Die Funktion soll 3 Parameter vom int übergeben bekommen, die sie addieren soll, durch 3 teilen soll, und als Dezimalzahl mit 2 Nachkommastellen zurück geliefert werden soll.
Ihr seht also, ein ganz triviales Problem.
So, und jetzt mein Code:

CREATEFUNCTIONimport_export.durchschnitt(intP1INT,intP2INT,intP3INT) RETURNSDECIMAL(10,2)RETURN((intP1+intP2+intP3)/3);

Soweit so gut, erstellen läßt sich die Funktion.
Jetzt soll die Funktion aufgerufen werden, mit folgendem Code:SELECTFUNCTIONimport_export.durchschnitt(1,2,3);
Und hier meldet mir das System einen Syntax Error 1064.
Nachstehend findet ihr ein Bild der Fehlermeldung.

Kann mir irgendjemand helfen?
Viele Grüße
jerry6600
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.846
Hallo, ich habe folgendes Problem (es ist eigentlich ein kleiner Syntax Error, aber ich komme nicht dahinter wo der Fehler liegt. Ich nehme an, ich sehe den Wald vor lauter Bäumen nicht.) :

Ich möchte folgende Funktion erstellen und in der Datenbank import_export abspeichern.
Die Funktion soll 3 Parameter vom int übergeben bekommen, die sie addieren soll, durch 3 teilen soll, und als Dezimalzahl mit 2 Nachkommastellen zurück geliefert werden soll.
Ihr seht also, ein ganz triviales Problem.
So, und jetzt mein Code:

CREATEFUNCTIONimport_export.durchschnitt(intP1INT,intP2INT,intP3INT) RETURNSDECIMAL(10,2)RETURN((intP1+intP2+intP3)/3);

Soweit so gut, erstellen läßt sich die Funktion.
Jetzt soll die Funktion aufgerufen werden, mit folgendem Code:SELECTFUNCTIONimport_export.durchschnitt(1,2,3);
Und hier meldet mir das System einen Syntax Error 1064.
Nachstehend findet ihr ein Bild der Fehlermeldung.

Kann mir irgendjemand helfen?
Viele Grüße
jerry6600


Leerzeichen-Taste auf der Tastatur kapott?

Code:
CREATEFUNCTIONimport_export.durchschnitt(intP1INT,intP2INT,intP3INT) RETURNSDECIMAL(10,2)RETURN((intP1+intP2+intP3)/3);

Ungetestet, aber da erwarte ich auch einen Syntaxfehler.
 

jerry6600

Neuer Benutzer
Beiträge
4
Natürlich heißt es auh bei mir:

CREATEFUNCTIONimport_export.durchschnitt(intP1INT,intP2INT,intP3INT) RETURNSDECIMAL(10,2)RETURN((intP1+intP2+intP3)/3);
War ein c&p Fehler.
mfg
 

jerry6600

Neuer Benutzer
Beiträge
4
Schon wieder Scccheint an dder Foren-SW zu liegen. Ich machs manuel:

CREATE FUNCTION import_export.durchschnitt(intP1 INT,intP2 INT,intP3 INT) RETURNS DECIMAL(10,2) RETURN((intP1+intP2+intP3)/3);

außerdem: Das geht.Erst beim Aufruf mit:

SELECT FUNCTIONimport_export.durchschnitt(1,2,3);

passieren der Syntaxerror (wie oben beschrieben)

mfg
 

akretschmer

Datenbank-Guru
Beiträge
9.846
Schon wieder Scccheint an dder Foren-SW zu liegen. Ich machs manuel:

CREATE FUNCTION import_export.durchschnitt(intP1 INT,intP2 INT,intP3 INT) RETURNS DECIMAL(10,2) RETURN((intP1+intP2+intP3)/3);

außerdem: Das geht.Erst beim Aufruf mit:

SELECT FUNCTIONimport_export.durchschnitt(1,2,3);

passieren der Syntaxerror (wie oben beschrieben)

mfg


Ist es soo schwer, einfach mal die übliche Code-Formatierung zu verwenden? Ist es soo schwer, mal in der MySQL-Doku nach der Syntax zu suchen, wie eine Funktion aufgerufen wird?

http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

Im Aufruf ist bei Dir FUNCTION flüssiger als Wasser. Überflüssig.
 
Werbung:

jerry6600

Neuer Benutzer
Beiträge
4
Hallo, Vielen Dank, das war die Lösung!
Es wars so, wie ich dachte: ich habe den Wald vor laute Bäumen nicht gesehen.
Ich habe verschiedene Dokumentation, unter anderem auch das Referenzhandbuch durchgelesen, und nicht realisiert, dass das Wort GROSSFUNKTION im Aufruf nicht geschrieben wird.


mfg
Jerry6600
 
Oben