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

时间:2015-04-02 22:06:04

标签: sql oracle plsql cursor

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

2 个答案:

答案 0 :(得分:1)

当您执行 SELECT 并返回多行时,您无法将行保存在变量中,因此您必须使用 CURSOR 。如果您熟悉编程,则 CURSOR 类似于数组。 因此,如果您执行 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

答案 1 :(得分:1)

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

使用显式游标方法的原因是您可以使用游标执行更多操作,例如BULK COLLECT,它可以在许多(但不是全部)情况下极大地提高处理性能。当你开发更复杂的过程时,更大的控制(除了做BULK COLLECT之外)是有帮助的。

祝您在进入Oracle之旅中好运。我已经使用了14年,并且是一个忠实粉丝。