PL/SQL 中的游标是用于处理查询结果集的数据库对象。它允许开发者逐行处理查询返回的数据。PL/SQL 支持两种类型的游标:隐式游标和显式游标。
- 隐式游标(Implicit Cursors):
- 隐式游标由 Oracle 自动管理,无需显式声明或控制。当执行 DML(数据操纵语言)语句(如 INSERT、UPDATE、DELETE)时,Oracle 自动创建隐式游标来处理这些语句。对于 SELECT 语句,如果没有显式地使用游标来处理结果集,Oracle 也会自动处理结果集,这也被视为隐式游标的一种使用。
-- 隐式游标的例子(UPDATE 语句) UPDATE employees SET salary = salary * 1.1 WHERE department_id = 10;
- 显式游标(Explicit Cursors):
- 显式游标是由程序员显式声明、打开、关闭和使用的游标。通过显式游标,可以更精确地控制结果集的处理,逐行处理数据并执行相应的操作。
- 使用显式游标,程序员可以在 PL/SQL 代码中声明游标,并通过打开、获取数据、关闭游标来处理数据。
-- 显式游标的例子 DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name FROM employees WHERE department_id = 10; emp_rec employees%ROWTYPE; BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO emp_rec; EXIT WHEN emp_cursor%NOTFOUND; -- 这里可以执行操作,如输出或其他处理 DBMS_OUTPUT.PUT_LINE('Employee: ' || emp_rec.last_name); END LOOP; CLOSE emp_cursor; END;
显式游标提供了更多的控制和灵活性,允许开发者按需处理结果集中的数据,并执行各种操作。
Was this helpful?
0 / 0