кодесурса
«PL / SQL

Упражнения для курсора PL / SQL: выборка нескольких записей с использованием вложенного курсора

script1adsense2code
script1adsense3code

Курсор PL / SQL: упражнение 19 с решением

Напишите программу на PL / SQL для извлечения нескольких записей с использованием вложенного курсора.

Пример решения:

Код PL / SQL:

DECLARE
    e_dept_no employees.department_id%TYPE;
    CURSOR cur_deptartments IS
      SELECT *
      FROM   departments;
    CURSOR cur_employees IS
      SELECT *
      FROM   employees e
      WHERE  e.department_id = e_dept_no;
    v_deptrec departments%ROWTYPE;
    v_emprec  employees%ROWTYPE;
BEGIN
    OPEN cur_deptartments;
    LOOP
        FETCH cur_deptartments INTO v_deptrec;
        exit WHEN cur_deptartments%NOTFOUND;
        e_dept_no := v_deptrec.department_id;
		
		
      DBMS_OUTPUT.PUT_LINE('----------------------------------');
      DBMS_OUTPUT.PUT_LINE('Department Name : '||v_deptrec.department_name);
      DBMS_OUTPUT.PUT_LINE('----------------------------------');		
        OPEN cur_employees;
        LOOP
            FETCH cur_employees INTO v_emprec;
            exit WHEN cur_employees%NOTFOUND;
            dbms_output.Put_line('Employee: '
                                 || v_emprec.first_name
								 ||chr(9)||'Salary: '
								 || v_emprec.salary);
        END LOOP;
        CLOSE cur_employees;
    END LOOP;
    CLOSE cur_deptartments;
END; 
 /

Пример вывода:

 SQL> /
----------------------------------
Название отдела: Администрация
----------------------------------
Работник: Дженнифер Зарплата: 4400
----------------------------------
Название отдела: маркетинг
----------------------------------
Сотрудник: Михаил Зарплата: 13000
Работник: Пэт Зарплата: 6000
----------------------------------
Название отдела: Закупки
----------------------------------
Работник: Ден Зарплата: 11000
Работник: Александр Зарплата: 3100
Сотрудник: Шелли Зарплата: 2900
Сотрудник: Сигал Зарплата: 2800
Работник: Гай Зарплата: 2600
Работник: Карен Зарплата: 2500
...

Блок - схема:

«Блок-схема:

Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Написать программу на PL / SQL для извлечения нескольких записей и нескольких столбцов из разных таблиц.
Далее: Написать программу на PL / SQL для FETCH записей с вложенными курсорами, используя Cursor FOR Loops.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code