[Home] 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