------------------------------------------------------------------------------------- ZAD1
create or replace package body MOJ as
-- 1 --
procedure DODAJ_KLI(p_imie varchar2, p_nazwisko varchar2, p_nr_dowodu varchar2, p_miejscowosc varchar2, p_kod_pocztowy varchar2, p_ulica varchar2) is
nowy_klient_id number;
begin
select klient_id_seq.NEXTVAL into nowy_klient_id from dual;
insert into klienci(nowy_klient_id, p_nazwisko, p_imie, p_nr_dowodu, p_miejscowosc, p_kod_pocztowy, p_ulica);
end;
-- 2 --
procedure ZMIEN_SAM(p_marka varchar2, p_mnoznik number) is
begin
update samochody set samochody.koszt_dnia * p_mnoznik where samochody.marka = p_marka;
end;
-- 3 --
procedure USUN_KLI(p_id number) is
begin
delete from klienci where klienci.id_kli = p_id;
end;
-- 4 --
procedure ZMIEN_ADRES(p_id number, p_miejscowosc varchar2, p_kod_pocztowy varchar2, p_ulica varchar2) is
begin
update klienci set klienci.miejscowosc = p_miejscowosc and klienci.kod_pocztowy = p_kod_pocztowy and klienci.ulica = p_ulica;
end;
-- 5 --
procedure LISTA(p_N number) is
cursor kursor is
select k.imie as imi, k.nazwisko as naz, k.miejscowosc as mie, k.kod_pocztowy as kod, k.ulica as uli, w.koszt as kos
from klienci k, wypozyczenia w where k.id_kli = w.id_kli and rownum < N order by w.koszt desc;
begin
for rek in kursor loop
dbms_output(rek.imi || ' ' || rek.naz || ' ' || rek.mie || ' ' || rek.kod || ' ' || rek.uli || ' ' || rek.kos);
end loop;
end;
end;
------------------------------------------------------------------------------------- ZAD2
-- przy zalozeniu ze data jest wprowadzana jako ciag DDMMYY
create or replace function(p_id_sam number, p_id_kli number, p_data_wyp string, p_data_zwr string, p_koszt number)
return number is
begin
insert into wypozyczenia values (0, wypozyczenia.id_sam=p_id_sam, wypozyczenia.id_kli=p_id_kli,
wypozyczenia.data_wyp=to_date(to_char(p_data_wyp),'DDMMYY'),
wypozyczenia.data_zwr=to_date(to_char(p_data_zwr),'DDMMYY'), wypozyczenia.koszt=p.koszt);
return 0;
end;
===========================================
DECLARE
v_max_id NUMBER(5);
BEGIN
SELECT max(id_wypozyczenia) INTO v_max_id FROM wypozyczenia;
EXECUTE IMMEDIATE 'CREATE SEQUENCE wyp_seq START WITH ' || to_char(v_max_id + 1) || ' INCREMENT BY 1';
END;
CREATE OR REPLACE TRIGGER wyp_trig
BEFORE INSERT ON wypozyczenia
FOR EACH ROW
WHEN (NEW.id_wypozyczenia IS NULL)
BEGIN
SELECT wyp_seq.NEXTVAL INTO :NEW.id_wypozyczenia FROM dual;
END;
Wyszukiwarka
Podobne podstrony:
kolokwium nr 1 rozwiązanie PlichtaRozwiazania Kolokwium nr 2kartkówka nr 4 rozwiazanieKolokwium nr 1 zestawy przykładoweZadania domowe ISD kolokwium nr 22przykladowe zadania na kolokwium nr 1? di 09Kolokwia nr 1v2 BPytania z kolokwium nr 2 z Geologii Czwartorzędu Błażej (1)kolokwium kolokwium nr 1 lab123 (2013)Kolokwia nr 1v2 DKOLOKWIUM NR 2 s V IPB, BKiI 2011 12 (01)Kolokwium nr 2 2008 09analiza 2 kolokwium nr 2 gr E Hwięcej podobnych podstron