Pregunta

I tratar de definir una función en Sybase. Escribo este script:

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

pero cuando corro esto, me sale este error:

>[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] 

¿Qué puedo hacer yo? Gracias

¿Fue útil?

Solución

He buscado mucho en la web y otros documentos, me parece que las funciones definidas por el usuario en Adaptive Server Enterprise 12 (ASE) deben ser implementados en Java. Decidí usar un StordProcedure. el uso es un poco difícil, pero apoyado en todas las versiones de Sybase.

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

Otros consejos

Yo no encuentra nada malo en el código. puede volver a tratar con el código continuación-

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

Trate Esta .... va a trabajar

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

Esto funcionó para mí.

CREATE FUNCTION GetUserGroup (@userId int)
RETURNS int
AS
BEGIN
 select @userId = 10
    RETURN @userId
END
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top