PL/SQL 中的游标是用于处理查询结果集的数据库对象。它允许开发者逐行处理查询返回的数据。PL/SQL 支持两种类型的游标:隐式游标和显式游标。

  1. 隐式游标(Implicit Cursors):
    • 隐式游标由 Oracle 自动管理,无需显式声明或控制。当执行 DML(数据操纵语言)语句(如 INSERT、UPDATE、DELETE)时,Oracle 自动创建隐式游标来处理这些语句。对于 SELECT 语句,如果没有显式地使用游标来处理结果集,Oracle 也会自动处理结果集,这也被视为隐式游标的一种使用。
    -- 隐式游标的例子(UPDATE 语句)
    UPDATE employees SET salary = salary * 1.1 WHERE department_id = 10;
    
  2. 显式游标(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

发表回复 0

Your email address will not be published.