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

Hor*_*ice 3 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;
Run Code Online (Sandbox Code Playgroud)

Jon*_*ler 6

CURSOR表达式是一种很少使用的功能,它使您能够将数据集传递给PL/SQL过程.

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

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

我只看到使用CURSOR表达式有两个原因:

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