Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
есептер.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
158.21 Кб
Скачать

42) Set serveroutput on;

DECLARE

nEmpId number(6,0) := &Номер_сотрудника;

nOldSalary number(8,2);

nNewSalary number(8,2) := &Новая_зарплата;

rEmp hr.employees%ROWTYPE;

BEGIN

SELECT * INTO rEmp FROM hr.EMPLOYEES WHERE employee_id = nEmpId;

nOldSalary := rEmp.Salary;

rEmp.Salary := nNewSalary;

UPDATE hr.Employees SET ROW = rEmp WHERE employee_id = rEmp.employee_id;

COMMIT;

dbms_output.PUT_LINE('Номер сотрудника: ' || rEmp.Employee_id || ' Имя и фамилия: ' || rEmp.first_name || ' ' || rEmp.Last_name);

dbms_output.PUT_LINE('Старая зарплата: ' || nOldSalary || '  Новая зарплата:  ' || rEmp.Salary);

END;

41) Set serveroutput on;

DECLARE

nEmpID hr.EMPLOYEES.Employee_id%TYPE := &Номер_сотрудника;

nOldSalary hr.employees.salary%Type;

nNewSalary hr.Employees.SALARY%Type;

sFirstName hr.EMPLOYEES.first_name%Type;

sLastName hr.employees.Last_Name%Type;

dHireDate hr.employees.HIRE_DATE%type;

nYears number(4,0);

BEGIN

SELECT salary into nOldSalary from hr.employees where employee_id = nEmpId;

SELECT first_name into sFirstName from hr.employees where employee_id = nEmpId;

SELECT last_name into sLastName from hr.employees where employee_id = nEmpId;

SELECT hire_date into dHireDate from hr.employees where employee_id = nEmpId;

nYears := MONTHS_BETWEEN(SYSDATE, dHireDate)/12;

IF nYears >= 15 then

nNewSalary := nOldSalary*1.15;

ELSIF nYears >= 10 Then

nNewSalary := nOldSalary*1.10;

ELSE

nNewSalary := nOldSalary*1.05;

END IF;

UPDATE hr.employees SET SALARY = nNewSalary WHERE employee_id = nEmpID;

commit;

DBMS_OUTPUT.PUT_LINE('Номер сотрудника: ' || nEmpID || '  Имя и фамилия: ' || sFirstName || ' ' || sLastName || '  Проработано лет: ' || nYears);

DBMS_OUTPUT.PUT_LINE('Старая зарплата: ' || nOldSalary || '  Новая зарплата: ' || nNewSalary);

END;

40) Declare

nOldSalary hr.employees.salary%Type;

nNewSalary hr.Employees.SALARY%Type;

sFirstName hr.EMPLOYEES.first_name%Type;

sLastName hr.employees.Last_Name%Type;

dHireDate hr.employees.HIRE_DATE%type;

nYears number(4,0);

BEGIN

FOR ITEM IN (SELECT Employee_id FROM hr.EMPLOYEES)

LOOP

SELECT salary into nOldSalary from hr.employees where employee_id = item.Employee_id;

SELECT first_name into sFirstName from hr.employees where employee_id = item.Employee_id;

SELECT last_name into sLastName from hr.employees where employee_id = item.Employee_id;

SELECT hire_date into dHireDate from hr.employees where employee_id = item.Employee_id;

nYears := MONTHS_BETWEEN(SYSDATE, dHireDate)/12;

CASE

WHEN nYears >= 15 THEN nNewSalary := nOldSalary*1.15;

WHEN nYears >= 10 THEN nNewSalary := nOldSalary*1.10;

ELSE nNewSalary := nOldSalary*1.05;

END CASE;

UPDATE hr.employees SET SALARY = nNewSalary WHERE employee_id = item.Employee_id;

DBMS_OUTPUT.PUT_LINE('Номер сотрудника: ' || item.Employee_id || '  Имя и фамилия: ' || sFirstName || ' ' || sLastName || ' Проработано лет: ' || nYears);

DBMS_OUTPUT.PUT_LINE('Старая зарплата: ' || nOldSalary || '  Новая зарплата: ' || nNewSalary);

END LOOP;

END;

36) create sequence seq

increment by 5

start with 100

maxvalue 565;

declare

sjob_title varchar2(20):='&nazvanie';

smin_salary int:='&min';

smax_salary int:='&max';

begin

insert into jobs values(seq.nextval, sjob_title,

smin_salary, smax_salary);

commit;

end;

/

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]