【发布时间】:2014-01-30 15:07:53
【问题描述】:
我试图了解使用 cursor(select..) 查询的目的。 例如,我从 oracle 文档中得到了这个。我可以将员工加入部门表。光标是怎么回事?
SELECT department_name, CURSOR(SELECT salary, commission_pct
FROM employees e
WHERE e.department_id = d.department_id)
FROM departments d
ORDER BY department_name;
【问题讨论】:
-
此查询获取部门名称,以及该部门所有员工的工资和通讯百分比的游标引用。加入为您提供部门表中的多行,匹配相应的员工人数。还有一个有趣的讨论here
-
我们必须在有限的集合中获取查询。如果大批量制作,我们会最大化可能打开的游标。当以 50 个为一组打开时,在 fetch 之后打开和关闭 50 个游标。!与普通查询的主要区别是,我们不能在普通查询(标量)中返回多个列/行,这可以通过 CURSOR 表达式来实现!