Упражнения по PL / SQL-курсору: отображение названия отдела и его наиболее дорогого сотрудника
Курсор PL / SQL: Упражнение 36 с решением
Напишите блок PL / SQL, чтобы отобразить название отдела и его самого дорогого сотрудника.
Отображение названия отдела и самого дорогого сотрудника
Пример решения:
Код PL / SQL:
DECLARE
CURSOR department_cur IS
SELECT department_id,
department_name,
Max(salary) maxsalary
FROM employees
join departments USING (department_id)
GROUP BY department_id,
department_name;
emp_first_name employees.first_name%TYPE;
BEGIN
dbms_output.Put_line('------------------------------------------------------------');
dbms_output.Put_line(Rpad('Name of the Department', 35)
||Rpad('First Name', 25));
dbms_output.Put_line('------------------------------------------------------------');
FOR emp_dept_cur IN department_cur LOOP
BEGIN
SELECT first_name
INTO emp_first_name
FROM employees
WHERE department_id = emp_dept_cur.department_id
AND salary = emp_dept_cur.maxsalary;
dbms_output.Put_line(Rpad(emp_dept_cur.department_name, 35)
|| Rpad(emp_first_name, 25));
EXCEPTION
WHEN too_many_rows THEN
dbms_output.Put_line(Rpad(emp_dept_cur.department_name, 35)
|| ' - More than one employee');
END;
END LOOP;
END;
/
Пример вывода:
SQL> / ------------------------------------------------ Наименование отдела Имя ------------------------------------------------ Финанс Нэнси Доставка Адам Связи с общественностью Герман Покупка Ден Исполнительный стивен Администрация Дженнифер Бухгалтерский учет Шелли Человеческие ресурсы Сьюзен Маркетинг Майкл IT Александр Сбыт Джон Процедура PL / SQL успешно завершена.
Блок - схема:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите блок PL / SQL, чтобы отобразить идентификатор сотрудника, имя, должность и дату начала текущей работы.
Далее: Напишите блок PL / SQL для отображения фамилии, имени и суммы переплаты с использованием параметров.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code