Jump to content

Utilizarea unui cursor ca output al unei proceduri stocate


Recommended Posts

kenzake powah!
Posted

Exemplul urmator arată modul în care se poate utiliza un cursor ca output al unei proceduri stocate în T-SQL. Ideea este că în acest exemplul de mai jos nu se mai declară cursorul cu: DECLARE cursCURSOR FOR SELECT ... urmat de deschiderea cursorului cu OPEN curs, ci se deschide cursorul din execuţia procedurii stocate, cu output-ul acesteia. 

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 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...