Операторы выбора, включенные в функцию, не могут возвращать данные клиенту - PullRequest
0 голосов
/ 26 февраля 2012

Гуру T-SQL, что заставляет следующую процедуру возвращать эту ошибку «Операторы выбора, включенные в функцию, не могут возвращать данные клиенту.»?

create function dbo.func_get_times_for_stop(@stopId as varchar(5))
returns varchar(max) as
begin 
    declare @arrival_times varchar(max)
    set @arrival_times = '';
    declare @arrival_time varchar(5)
    declare arrival_cursor cursor for
        select arrival from schedules where stopid=@stopId;

    open arrival_cursor;
    fetch next from arrival_cursor;
    while @@fetch_status = 0
       begin
          fetch next from arrival_cursor into @arrival_time;    
          set @arrival_times += ',' + @arrival_time;    
       end;
    close arrival_cursor;
    deallocate arrival_cursor;

    return  @arrival_times;
end;

Я просто пытаюсь вернутьскаляр, который содержит строку, соединенную с момента прибытия.Я не вижу, куда я возвращаю оператор выбора.

Ответы [ 2 ]

3 голосов
/ 26 февраля 2012

Может ли быть эта строка?

fetch next from arrival_cursor;

Это должно быть извлечение в @arrival_time.

1 голос
/ 26 февраля 2012

Здесь:

fetch next from arrival_cursor;

вам нужно

fetch next from arrival_cursor into @arrival_time;
...