Как создать пользовательскую функцию в sybase? - PullRequest
2 голосов
/ 13 октября 2009

Я пытаюсь определить функцию в sybase. Я пишу этот сценарий:

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

но когда я запускаю это, я получаю эту ошибку:

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

Что я могу сделать? Спасибо

Ответы [ 4 ]

5 голосов
/ 13 октября 2009

Я очень много искал в Интернете и других документах. Я обнаружил, что пользовательские функции в Adaptive Server Enterprise 12 (ASE) должны быть реализованы на Java. Я решил использовать StordProcedure. Его использование немного сложное, но поддерживается во всех версиях Sybase.

см .: http://www.sypron.nl/udf.html

1 голос
/ 10 мая 2012

Я не нахожу ничего плохого в коде. Вы можете повторить попытку с кодом ниже-

CREATE FUNCTION GetUserGroup (userId int)
RETURNS int
As
BEGIN
    RETURN (10)
END
0 голосов
/ 21 января 2016

это сработало для меня.

CREATE FUNCTION GetUserGroup (@userId int)
RETURNS int
AS
BEGIN
 select @userId = 10
    RETURN @userId
END
0 голосов
/ 18 июня 2014

Попробуйте это .... это будет работать

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