SQL Курсор возвращает 0 строк при запуске в одном сеансе - PullRequest
1 голос
/ 21 февраля 2020

У меня есть хранимая процедура, в которой я использую курсор для разбора массивов, разделенных точками с запятой (например, Marketing;Diligence;Deal Flow), возвращается в трех отдельных строках, каждое из которых имеет свою строку. Процедура / курсор отлично работает при запуске в сеансе fre sh. Однако если я перезапущу процедуру в том же сеансе, курсор вернет 0 строк.

DECLARE @category NVARCHAR(MAX)

DECLARE cursor_product CURSOR LOCAL STATIC FORWARD_ONLY READ_ONLY FOR 
     SELECT DISTINCT category AS val 
     FROM #temp;

OPEN cursor_product;

CREATE TABLE #temp5
(
     Name varchar(max)
)

WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO #temp5
    EXEC sp_ParseArray @category, ';'

    FETCH NEXT FROM cursor_product INTO @category
END;

CLOSE cursor_product;
DEALLOCATE cursor_product;
...