ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Referenc-PL/SQL静态SQL-光标表达式

PLSQL Language Referenc-PL/SQL静态SQL-光标表达式

原创 Oracle 作者: luisedalian 时间:2014-03-17 00:18:42 0 删除 编辑

光标表达式

光标表达式返回嵌套光标。                 

cursor(subquery)

可以在非子查询的SELECT语句中使用光标表达式,或将它传递给接受光标变量参数的函数。不能通过隐式光标使用光标表达式。

DECLARE

    TYPE emp_cur_typ IS REF CURSOR;

 

    emp_cur    emp_cur_typ;

    dept_name  departments.department_name%TYPE;

    emp_name   employees.last_name%TYPE;

 

    CURSOR c1 IS

        SELECT department_name,

        CURSOR ( SELECT e.last_name

                 FROM employees e

                 WHERE e.department_id = d.department_id

                 ORDER BY e.last_name

                ) employees

    FROM departments d

    WHERE department_name LIKE 'A%'

    ORDER BY department_name;

BEGIN

    OPEN c1;

    LOOP      --处理结果集中的每一行 

        FETCH c1 INTO dept_name, emp_cur;

        EXIT WHEN c1%NOTFOUND;

        DBMS_OUTPUT.PUT_LINE('Department: ' || dept_name);

 

        LOOP -- 处理子查询结果集中的每一行

            FETCH emp_cur INTO emp_name;

            EXIT WHEN emp_cur%NOTFOUND;

        DBMS_OUTPUT.PUT_LINE('-- Employee: ' || emp_name);

        END LOOP;

    END LOOP;

    CLOSE c1;

END;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1122899/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    6044094