Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3682SAS / практика

.txt
Скачиваний:
2
Добавлен:
11.05.2015
Размер:
1.23 Кб
Скачать
1. Создать таблицу на основе таблицы mai.sotr

create table m_sotr
as select * from mai.sotr

select * from m_sotr

2. Написать хранимую процедуру переводящую сотрудника в другой отдел, если там не более 40 человек.

create table m_sotr
as select * from mai.sotr

select * from m_sotr

create or replace procedure perevod (nomer_sotr number, new_otd number)
is
a1 number(5);
otd number (5);
ex1 exception;
ex2 exception;
begin
select count(*) into a1 from m_sotr where nom_sotr=nomer_sotr;
if a1=0 then
raise ex1;
end if;
select count(*) into otd from M_sotr where nom_otd=new_otd;
if otd>40 then
raise ex2;
end if;
update m_sotr set nom_otd=new_otd where nom_sotr=nomer_sotr;
exception
when ex1 then
dbms_output.put_line('Нет сотрудника c nomer '||nomer_sotr);
when ex2 then
dbms_output.put_line('Количество сотрудников больше 40 кол-во= '||otd);
end;

select * from user_errors where name='PEREVOD'


select * from m_sotr order by nom_sotr

execute perevod(9,101)

select nom_otd from M_sotr group by nom_otd having count(*)<40

select * from M_sotr where nom_sotr=9

3. Написать триггер, не позволяющий изменять зарплату работнику.
Соседние файлы в папке 3682SAS