Упражнения по PL / SQL-курсору: отображение имени сотрудника и процент повышения заработной платы в зависимости от опыта работы
Курсор PL / SQL: упражнение 32 с решением
Напишите программу на языке PL / SQL, чтобы отобразить имя сотрудника и процент повышения заработной платы в соответствии с их опытом работы.
Пример решения:
Код PL / SQL:
DROP TABLE emp_temp;
CREATE TABLE emp_temp AS
SELECT *
FROM employees;
DECLARE
CURSOR employees_cur IS
SELECT employee_id,
first_name,
Trunc(Months_between(SYSDATE,hire_date) / 12) expr
FROM emp_temp;
incre_per NUMBER(2);
BEGIN
dbms_output.put_line(rpad('Employee ID',15)||rpad('Name',25) || 'Increment %');
dbms_output.Put_line('-----------------------------------------------------------');
FOR store_emp_rec IN employees_cur
LOOP
incre_per :=
CASE
WHEN store_emp_rec.expr > 10 THEN
15
WHEN store_emp_rec.expr > 5 THEN
10
ELSE
8
END;
UPDATE emp_temp
SET salary = salary + (salary * incre_per / 100)
WHERE employee_id = store_emp_rec.employee_id;
dbms_output.put_line(rpad(store_emp_rec.employee_id,15) ||rpad(store_emp_rec.first_name,25)|| incre_per );
END LOOP;
END;
/
Пример вывода:
SQL> / Идентификатор сотрудника Имя Инкремент% -------------------------------------------------- - 100 Стивен 15 101 Неена 15 102 Lex 15 103 Александра 15 104 Брюс 10 105 Давид 15 106 Валли 15 107 Диана 15 108 Нанси 15 109 Даниил 15 110 Иоанна 15 111 Исмаэль 15 112 Жозе Мануэль 15 113 Луис 10 114 ден 15 ...
Блок - схема:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите блок в PL / SQL, чтобы отобразить название отдела и его руководителя.
Далее: Напишите блок PL / SQL, чтобы показать использование переменной в явном запросе курсора, и на результирующий набор влияет значение переменной, которое увеличивается после каждой выборки.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code