为什么在 PL/SQl ORACLE 中使用游标?

Why using cursors in PL/SQl ORACLE?

我是 PL/SQL 的初学者,在学习课程期间我看到了 CURSOR 我想知道我们为什么要使用它,什么时候使用? 非常感谢

当您执行 SELECT 并且 returns 多行时,您无法将这些行保存在 变量中,因此您必须使用 CURSOR。如果您熟悉编程,那么 CURSOR 类似于 A​​rray。 因此,如果您执行 SELECT 并将结果保存在代码中的变量中:

SELECT id INTO v_id FROM table;

并且如果返回多行,则无法将这些行保存在变量 v_id 中,并且 TOO_MANY_ROWS 将抛出异常。 参考:http://www.oracle.com/technetwork/issue-archive/2013/13-mar/o23plsql-1906474.html

此外,如果您看过 Oracle 的 FOR ... IN (SELECT ...) ... LOOP ... END LOOP 语句,那就是使用隐式游标。

使用显式游标方法的原因是您可以使用游标做更多的事情,例如BULK COLLECT,它可以在许多但不是所有情况下大大提高您的处理性能。当您开发更精细的流程时,更好的控制(不仅仅是执行 BULK COLLECT)会很有帮助。

祝您在 Oracle 之旅中好运。我已经使用它 14 年了,是它的忠实粉丝。