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

标签 oracle plsql

我试图理解使用游标(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 表达式,原因有两个:

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

关于oracle - Oracle中oracle游标(select ..)查询的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460095/

相关文章:

database - Oracle 中 VARCHAR2 的默认值是多少?

mysql - 从 MySQL 中的两个表中检索重复项

oracle - 我可以在 PL/SQL 中返回一个函数吗?

java - 检查数据库中的用户是否被禁止 JDBC

oracle - 如何在 ORACLE PL/SQL 创建或替换存储过程中捕获并返回(或打印)异常

database - 如何从另一个表继承列值

sql - "local collection types not allowed"PL/SQL 错误 ORA-06550

sql - 如何在Oracle中使用SQL删除重复的id

sql - 如何在oracle中打印游标值?

Oracle Apex/PLSQL : Can i use apex data export to store the file into another table as a blob?