光标的目的是什么?

时间:2013-01-28 16:46:47

标签: sql oracle11g

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

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:4)

最简单的形式是使用游标迭代结果集的行。想象一行作为列表中的对象。使用游标,您只能访问该行。

如果您熟悉其他编码语言中的foreach循环,那么您将完成许多相同的功能。

这个链接不太书卷。 Non Bookish Description