【发布时间】:2013-04-04 07:34:47
【问题描述】:
尝试在函数中使用 Select 语句时收到错误消息。错误状态:
消息 444,级别 16,状态 2,过程 JDE_GetWhereClause_test,第 26 行
函数中包含的 Select 语句无法将数据返回给客户端。
有什么想法吗?
CREATE FUNCTION [dbo].[JDE_GetWhereClause_test]
(
@tablename as varchar
)
RETURNS varchar(max)
AS
BEGIN
-- Declare the return variable here
Declare @ResultVar as varchar(max)
-- Add the T-SQL statements to compute the return value here
set @tablename = 'F0101'
Declare @Sql nvarchar(max)
Declare my_cur cursor for
SELECT fsuser FROM dbo.JDE_ExRowSecurity where fsuser = fsuser;
Declare @fsuser as nchar(15)
open my_cur;
fetch next from my_cur;
while @@fetch_status = 0
begin
fetch next from my_cur into @fsuser;
set @ResultVar += ',' + @fsuser;
end;
close my_cur;
deallocate my_cur;
-- Return the result of the function
RETURN @ResultVar
END
【问题讨论】:
-
顺便说一句,当您跳过第一行并使用最后一行两次时,您可以将第二个
fetch next语句与set @ResultVar ...交换 -
第 26 行。另外,如果我将语法与 oracle idk 进行比较,为什么你在打开光标后开始它应该在之前
标签: sql sql-server function select