当我们有不同的循环来迭代SQL中的数据时,我无法弄清楚为什么要使用游标。能否请您在这里指导我,区别于什么以及何时使用哪个选项。
答案 0 :(得分:1)
很多时候,我们必须根据结果集返回的一行或多行数据执行特定操作。要遍历并遍历结果集的每一行,我们需要一个结果集句柄。
CURSOR
允许在SELECT
语句返回的结果集上定义句柄。游标的范围是用于执行它的代码块。与VIEW
不同,CURSOR
是运行时视图,未定义并存储为数据库对象。
当我们OPEN
一个游标时,可以使用FETCH
命令获取每一行并存储到变量中。使用这些变量中的值,您可以执行所需的业务逻辑并执行操作。通过使用REPEAT - UNTIL
或任何其他标准循环实践迭代光标来获取游标中的下一行。
<强>结论强>:
除非在每一行上都有句柄,否则我们不能使用每行中的值来进行程序操作。
请参阅:
SELECT ... INTO var_list
或打开光标并使用FETCH
... INTO var_list
。