Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

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

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von jerry6600, 1 August 2013.

  1. jerry6600

    jerry6600 Neuer Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru


    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.
     
  3. jerry6600

    jerry6600 Neuer Benutzer

    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
     
  4. akretschmer

    akretschmer Datenbank-Guru


    BITTE verwende Code-Tags.
     
  5. jerry6600

    jerry6600 Neuer Benutzer

    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
     
  6. akretschmer

    akretschmer Datenbank-Guru


    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.
     
  7. jerry6600

    jerry6600 Neuer Benutzer

    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
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden