光标的目的是什么?

Aug*_*ter 2 sql oracle11g

我尝试在互联网上搜索SQL中的游标的用途,使用和实现.我发​​现了一些答案,他们用非常书卷的语言解释了它们,并且这些例子对于理解函数本身来说很复杂.我是数据库/ SQL的新手有人可以用一个简单的例子解释光标.

Dan*_*Dan 5

游标允许您逐行执行数据操作.例如,在T-SQL中为表中的每一行调用存储过程:

DECLARE @id_variable int

DECLARE the_cursor CURSOR
FOR SELECT id FROM SomeTable 

OPEN the_cursor
FETCH NEXT FROM the_cursor INTO @id_variable

WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC MyStoredProcedure @id_variable

    FETCH NEXT FROM the_cursor INTO @id_variable
END

CLOSE the_cursor
DEALLOCATE the_cursor
Run Code Online (Sandbox Code Playgroud)

一般来说,如果可能的话,应该避免使用游标,因为它们使用起来很麻烦并且表现不佳.