سؤال

أحاول تحديد وظيفة في 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] 

ماذا يمكنني أن أفعل؟ شكرًا

هل كانت مفيدة؟

المحلول

لقد بحثت كثيرًا في الويب والمستندات الأخرى ، أجد أنه يجب تنفيذ الوظائف المعرفة من قبل المستخدم في Enterprise Enterprise 12 (ASE) في Java. قررت استخدام stordprocedure. استخدامه صعب بعض الشيء ولكنه مدعوم في كل إصدار من Sybase.

يرى: http://www.sypron.nl/udf.html

نصائح أخرى

لا أجد أي شيء خطأ في الكود. يمكنك إعادة تجنبه مع الكود أدناه-

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

جرب هذا .... سوف يعمل

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

هذا عمل بالنسبة لي.

CREATE FUNCTION GetUserGroup (@userId int)
RETURNS int
AS
BEGIN
 select @userId = 10
    RETURN @userId
END
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top