Упражнения для курсоров PL / SQL: FETCH-записи с вложенными курсорами с использованием циклов Cursor FOR
Курсор PL / SQL: упражнение 20 с решением
Напишите программу на PL / SQL для записи FETCH с вложенными курсорами, используя Cursor FOR Loops.
Вложенные курсоры с помощью курсора для циклов
Пример решения:
Код PL / SQL:
DECLARE
emp_dept_id departments.department_id%TYPE;
CURSOR cur_dept IS
SELECT *
FROM departments
WHERE manager_id IS NOT NULL
ORDER BY department_name;
CURSOR cur_emp IS
SELECT *
FROM employees
WHERE department_id = emp_dept_id;
BEGIN
FOR r_dept IN cur_dept
LOOP
emp_dept_id := r_dept.department_id;
DBMS_OUTPUT.PUT_LINE('----------------------------------');
DBMS_OUTPUT.PUT_LINE('Department Name : '||r_dept.department_name);
DBMS_OUTPUT.PUT_LINE('----------------------------------');
FOR r_emp IN cur_emp
LOOP
DBMS_OUTPUT.PUT_LINE('Employee: '||r_emp.last_name);
END LOOP;
END LOOP;
END;
/
Пример вывода:
SQL> / ---------------------------------- Название отдела: Бухгалтерия ---------------------------------- Сотрудник: Хиггинс Сотрудник: Гитц ---------------------------------- Название отдела: Администрация ---------------------------------- Сотрудник: Whalen ---------------------------------- Название отдела: исполнительный ---------------------------------- Сотрудник: король Сотрудник: Кочхар Сотрудник: Де Хаан ...
Блок - схема:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на PL / SQL для извлечения нескольких записей с использованием вложенного курсора.
Далее: написать программу на PL / SQL для распечатки списка менеджеров и названия отделов.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code