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

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

script1adsense2code
script1adsense3code

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

Напишите блок PL / SQL для отображения фамилии, имени и суммы переплаты с помощью параметров.

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

Код PL / SQL:

DECLARE
  CURSOR emp_cur (emp_job_nm VARCHAR2, job_max_sal NUMBER) IS
    SELECT last_name, first_name, (salary - job_max_sal) overpayment
    FROM employees
    WHERE job_id = emp_job_nm
    AND salary > job_max_sal
    ORDER BY salary;
 
  PROCEDURE emp_excesspaid  IS
    last_name_   employees.last_name%TYPE;
    first_name_  employees.first_name%TYPE;
    paid_excess  employees.salary%TYPE;
  BEGIN
    LOOP
      FETCH emp_cur INTO last_name_, first_name_, paid_excess;
      EXIT WHEN emp_cur%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE(last_name_ || ', ' || first_name_ ||
        ' (by ' || paid_excess || ')');
    END LOOP;
  END emp_excesspaid;
 
BEGIN
  DBMS_OUTPUT.PUT_LINE('---------------------------------');
  DBMS_OUTPUT.PUT_LINE('Extra Salary paid to Programmers:');
  DBMS_OUTPUT.PUT_LINE('---------------------------------');
  OPEN emp_cur('IT_PROG', 6000);
  emp_excesspaid; 
  CLOSE emp_cur;
 
  DBMS_OUTPUT.PUT_LINE('-----------------------------------');
  DBMS_OUTPUT.PUT_LINE('Extra Salary paid to Stock Manager:');
  DBMS_OUTPUT.PUT_LINE('-----------------------------------');
  OPEN emp_cur('ST_MAN', 5000);
  emp_excesspaid; 
  CLOSE emp_cur;
END;
/

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

 SQL> /
---------------------------------
Дополнительная зарплата, выплачиваемая программистам:
---------------------------------
Hunold, Александр (3000)
-----------------------------------
Дополнительная зарплата, выплачиваемая менеджеру по складу:
-----------------------------------
Моргос, Кевин (на 800)
Фольман, Шанта (по 1500)
Кауфлинг, Пайам (до 2900)
Вайс, Мэтью (3000)
Фрипп, Адам (3200)
Процедура PL / SQL успешно завершена.

Блок - схема:

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

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

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

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

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code