2016-08-12 2 views
0

Ich versuche, eine gespeicherte Prozedur/Funktion zu erhalten, um einen festgelegten Datentyp zurückzugeben, aber wenn ich versuche, bekomme ich "Sie haben einen Fehler in Ihrer SQL-Syntax ... in der Nähe 'zurück ('ein');". Irgendwelche Zeiger? Dies ist das erste Mal, dass ich versucht habe, mit gespeicherten Prozeduren zu spielen ... Danke!Mysql-Funktion zum Zurückgeben von Set-Daten

delimiter // 
create function getset (set_type enum('a','b','c')) 
    returns set('one','two','three') 
    deterministic 
begin 
    case set_type 
    when 'a' 
     return ('one'); 

    when 'b' 
     return ('one,two'); 

    when 'c' 
     return ('one,two,three'); 
end// 
delimiter ; 

Antwort

1

Die Syntax von CASE ist:

CASE case_value 
    WHEN when_value THEN statement_list 
    [WHEN when_value THEN statement_list] ... 
    [ELSE statement_list] 
END CASE 

Sie verpassen alle THEN Schlüsselwörter und END CASE. Es sollte sein:

case set_type 
    when 'a' 
     then return ('one'); 

    when 'b' 
     then return ('one,two'); 

    when 'c' 
     then return ('one,two,three'); 

    end case; 

Die Fehlermeldung sagt klar, dass das Problem in der Nähe des return Schlüsselwort ist. Es hat nichts mit dem Datentyp zu tun, es ist ein Syntaxfehler.

Verwandte Themen