Como criar uma função definida pelo usuário no Sybase?
-
21-09-2019 - |
Pergunta
Eu tentando definir uma função no Sybase. Eu escrevo este script:
CREATE FUNCTION GetUserGroup (userId int)
RETURNS int
BEGIN
RETURN (10)
END
Mas quando eu corro isso, recebo este erro:
>[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]
O que posso fazer? Obrigado
Solução
Eu pesquisei muito na Web e em outros documentos, acho que as funções definidas pelo usuário no Adaptive Server Enterprise 12 (ASE) devem ser implementadas em Java. Decidi usar um StorordProcedure. O uso é um pouco difícil, mas apoiado em todas as versões do Sybase.
Outras dicas
Não encontro nada de errado com o código. você pode voltar com o código abaixo-
CREATE FUNCTION GetUserGroup (userId int)
RETURNS int
As
BEGIN
RETURN (10)
END
Tente isso .... vai funcionar
CREATE FUNCTION GetUserGroup (@userId int)
RETURNS int
As
BEGIN
declare @Result int
select @Result=10
RETURN @Result
END
Isso funcionou para mim.
CREATE FUNCTION GetUserGroup (@userId int)
RETURNS int
AS
BEGIN
select @userId = 10
RETURN @userId
END
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow