У меня есть хранимая процедура, в которой я использую курсор для разбора массивов, разделенных точками с запятой (например, 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;