我试图了解使用cursor(select ..)查询的目的。 例如,我从oracle doc获得了这个。我可以加入员工与部门表。光标的处理是什么?
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;
答案 0 :(得分:6)
CURSOR表达式是一种很少使用的功能,可以将数据集传递给PL / SQL过程。
这允许高级功能,例如链接并行流水线功能。这提供了一种快速处理程序代码的多个阶段的方法。有关示例,请参阅PL/SQL Language Reference。
这是一个有趣的功能,但使用CURSOR表达式通常是一个很大的错误。这意味着您的大多数处理将在PL / SQL而不是SQL中完成。 PL / SQL非常适合控制SQL,但通常不是你想要繁重的工作。
我之前只看过使用CURSOR表达式有两个原因: