Utilizarea unui cursor ca output al unei proceduri stocate
1. Tabelul utilizat
CREATE TABLE Students ([ID] INT PRIMARY KEY IDENTITY, FirstName VARCHAR(50), LastName VARCHAR(50))
INSERT INTO Students VALUES ('abc', 'abc')
INSERT INTO Students VALUES ('aaa', 'aaa')
INSERT INTO Students VALUES ('bbb', 'bbb')
INSERT INTO Students VALUES ('ccc', 'ccc')
2. Procedura stocata
CREATE PROCEDURE spGetCursor (@FirstChar CHAR(1), @c CURSOR VARYING OUTPUT)
AS
BEGIN
SET @c = CURSOR FOR
SELECT [ID], FirstName, LastName
FROM Students
WHERE FirstName LIKE @FirstChar + '%'
OPEN @c
END
3. Exemplu de utilizare
DECLARE @o CURSOR
EXECUTE spGetCursor 'a', @o OUTPUT
IF CURSOR_STATUS ('variable', '@o') = 1
FETCH NEXT FROM @o