首页 > 解决方案 > 这是如何工作的pl/sql?

问题描述

请解释这是如何工作的,Thx。

DECLARE   
CURSOR ab IS
SELECT emp.ename, emp.sal, dept.loc
FROM emp
JOIN dept ON emp.deptno = dept.deptno;
TYPE tbl_join IS TABLE OF cc%ROWTYPE;
l_table tbl_join;
BEGIN
OPEN cc;
FETCH cc BULK COLLECT INTO l_table;
CLOSE cc;
FOR indx IN
1 .. l_table.COUNT
LOOP
DBMS_OUTPUT.PUT_LINE(l_table(indx).ename);
DBMS_OUTPUT.PUT_LINE(l_table(indx).sal);
DBMS_OUTPUT.PUT_LINE(l_table(indx).loc);
END LOOP;
END;

标签: sqloracleplsql

解决方案


  • 将员工姓名、薪水和位置详细信息提取到 CURSOR ab 中。

  • 对于游标中的每一行,循环打印详细信息。

  • 循环在达到总行数时终止。

对于游标,请参阅此处

PL/SQL 游标用于检索和处理零或多行数据。使用游标有很多步骤,根据您实现游标的方式,您可以控制每个步骤或让数据库执行它们。PL/SQL 游标基于 SELECT 语句,通常在 PL/SQL 块的声明部分中声明。该语句不受检索的列或联接的表数的限制。

此代码段使用批量收集,请参见此处

获取数据的一种方法是 Oracle 批量收集。使用 Oracle 批量收集,PL/SQL 引擎告诉 SQL 引擎一次收集许多行并将它们放在一个集合中。在 Oracle 批量收集期间,SQL 引擎检索所有行并将它们加载到集合中并切换回 PL/SQL 引擎。当使用 Oracle 批量收集检索行时,仅使用两个上下文切换来检索它们。您希望使用 Oracle 批量收集收集的行数越多,使用 Oracle 批量收集的性能提升就越大。


推荐阅读