DECLARE
--定义游标变量
--使用预定义游标引用类型 SYS_REFCURSOR 声明
my_cursor SYS_REFCURSOR;
--先定义游标引用类型,然后使用 该类型 声明游标变量
--自定义类型
TYPE emp_cursor_type IS REF CURSOR RETURN employees%TYPE;
TYPE general_cursor_type IS REF CURSOR;
--使用自定义类型的游标变量
emp_cursor emp_cursor_type;
general_cursor general_cursor_type;
--定义变量
v_empinfo hr.employees%ROWTYPE;
v_deptinfo hr.departments%ROWTYPE;
BEGIN
--打开游标
--打开预定义类型
OPEN my_cursor FOR
SELECT * FROM departments;
--检索游标变量与检索显示游标相似,检索游标变量只能使用简单循环或者WHILE循环,不能使用FOR循环
LOOP FETCH my_cursor INTO v_deptinfo;
EXIT WHEN my_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_deptinfo.department_id||' '|| v_deptinfo.department_name)
END LOOP;
CLOSE my_cursor;
--打开自定义类型
OPEN emp_cursor FOR
SELECT * FROM employees;
LOOP FETCH e