
- •54) Declare
- •52) Declare
- •50) Declare
- •49)Set serveroutput on;
- •48) Set serveroutput on;
- •47) Declare
- •46) Declare
- •45) Declare
- •42) Set serveroutput on;
- •41) Set serveroutput on;
- •40) Declare
- •38) Declare
- •37) Set serveroutput on;
- •36) Set serveroutput on;
- •35) Declare
- •34) Declare
- •33) Declare
- •32) Declare
- •31) Declare
- •16) Решение:Еламан
- •15) Решение:Еламан
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;
/