如何在sybase中创建用户定义的函数?

时间:2009-10-13 07:36:39

标签: user-defined-functions sybase-ase

我试图在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 个答案:

答案 0 :(得分:5)

我在Web和其他文档中搜索得非常多,我发现Adaptive Server Enterprise 12(ASE)中的用户定义函数必须用Java实现。 我决定使用StordProcedure。它的使用有点困难,但它支持所有版本的Sybase。

请参阅:http://www.sypron.nl/udf.html

答案 1 :(得分:1)

我发现代码没有任何问题。您可以使用下面的代码重新尝试 -

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

答案 2 :(得分:-1)

试试这个....它会起作用

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

答案 3 :(得分:-1)

这对我有用。

CREATE FUNCTION GetUserGroup (@userId int)
RETURNS int
AS
BEGIN
 select @userId = 10
    RETURN @userId
END