Question

Je tente de définir une fonction dans sybase. Je vous écris ce script:

CREATE FUNCTION GetUserGroup (userId int)
RETURNS int
BEGIN
    RETURN (10)
END

mais quand je lance, je reçois cette erreur:

>[Error] Script lines: 1-6 --------------------------
 Incorrect syntax near the keyword 'BEGIN'.
 Msg: 156, Level: 15, State: 2
 Server: NEWSERVER, Procedure: GetUserGroup, Line: 3 

>[Error] Script lines: 1-6 --------------------------
 A RETURN statement with a return status may only be used in a SQL stored procedure.
 Msg: 178, Level: 15, State: 1
 Server: NEWSERVER, Procedure: GetUserGroup, Line: 4 

 [Executed: 10/13/09 11:01:29 AM IRST ] [Execution: 0/ms] 

Que puis-je faire? Merci

Était-ce utile?

La solution

Je cherchai très en web et d'autres documents, je trouve que les fonctions définies par l'utilisateur dans Adaptive Server Enterprise 12 (ASE) doivent être mises en œuvre en Java. J'ai décidé d'utiliser un StordProcedure. l'utilisation de Il est un peu difficile, mais il a soutenu dans toutes les versions de Sybase.

voir: http://www.sypron.nl/udf.html

Autres conseils

Je ne trouve pas quelque chose de mal avec le code. vous pouvez ré-essayer avec le code ci-dessous-

CREATE FUNCTION GetUserGroup (userId int)
RETURNS int
As
BEGIN
    RETURN (10)
END

Essayez ceci .... cela fonctionnera

CREATE FUNCTION GetUserGroup (@userId int)
RETURNS int
As
BEGIN
declare @Result int
select @Result=10
RETURN @Result
END

cela a fonctionné pour moi.

CREATE FUNCTION GetUserGroup (@userId int)
RETURNS int
AS
BEGIN
 select @userId = 10
    RETURN @userId
END
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top