我在PL/SQL中的光标术语上有点生疏.谁知道这个?
隐式游标是Oracle在您执行查询时"自动"为您创建的游标.编码更简单,但受到影响
效率低下(ANSI标准规定必须提取两次才能检查是否有多条记录)
容易受到数据错误的影响(如果你得到两行,它会引发一个TOO_MANY_ROWS异常)
例
SELECT col INTO var FROM table WHERE something;
显式游标是您自己创建的游标.它需要更多代码,但可以提供更多控制 - 例如,如果您只想要第一条记录而不关心是否有其他记录,则可以只是打开 - 获取 - 关闭.
例
DECLARE CURSOR cur IS SELECT col FROM table WHERE something; BEGIN OPEN cur; FETCH cur INTO var; CLOSE cur; END;
显式游标在声明块中定义如下:
DECLARE CURSOR cur IS SELECT columns FROM table WHERE condition; BEGIN ...
隐式游标直接在代码块中实现:
... BEGIN SELECT columns INTO variables FROM table where condition; END; ...