Упражнения для курсора PL / SQL: отображение фамилии, имени и суммы переплаты с использованием параметров
Курсор 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 программирования
disqus2code