Oracle中oracle游标(select ..)查询的目的是什么?

时间:2014-01-30 15:07:53

标签: oracle plsql

我试图了解使用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;

1 个答案:

答案 0 :(得分:6)

CURSOR表达式是一种很少使用的功能,可以将数据集传递给PL / SQL过程。

这允许高级功能,例如链接并行流水线功能。这提供了一种快速处理程序代码的多个阶段的方法。有关示例,请参阅PL/SQL Language Reference

这是一个有趣的功能,但使用CURSOR表达式通常是一个很大的错误。这意味着您的大多数处理将在PL / SQL而不是SQL中完成。 PL / SQL非常适合控制SQL,但通常不是你想要繁重的工作。

我之前只看过使用CURSOR表达式有两个原因:

  1. 开发人员不知道中间或高级SQL功能,例如分析功能,MODEL等。
  2. 构建企业规则引擎。