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

Упражнения по PL / SQL-курсору: отображение названия отдела и его наиболее дорогого сотрудника

script1adsense2code
script1adsense3code

Курсор 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code