我试图理解使用游标(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;
最佳答案
CURSOR 表达式是一个很少使用的功能,它使您能够将数据集传递到 PL/SQL 过程。
这允许高级功能,例如链接并行流水线函数。这提供了一种快速处理过程代码的多个阶段的方法。请参阅PL/SQL Language Reference举个例子。
这是一个有趣的功能,但使用 CURSOR 表达式通常是一个巨大的错误。这意味着您的大部分处理将在 PL/SQL 而不是 SQL 中完成。 PL/SQL 非常适合控制 SQL,但它通常不是您想要执行繁重工作的地方。
我只看到过使用 CURSOR 表达式,原因有两个:
- 开发人员不了解中级或高级 SQL 功能,例如分析函数、MODEL 等。
- 构建企业规则引擎。
关于oracle - Oracle中oracle游标(select ..)查询的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460095/