Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --1
- CREATE OR REPLACE PROCEDURE p01(p_rendszam IN szerelo.sz_auto.rendszam%TYPE,
- p_dat OUT szerelo.sz_autofelertekeles.datum%TYPE,
- p_ertek OUT szerelo.sz_autofelertekeles.ertek%TYPE) IS
- p_azon szerelo.sz_autofelertekeles.auto_azon%TYPE;
- tulSok EXCEPTION;
- PRAGMA EXCEPTION_INIT(tulSok,-20100);
- BEGIN
- p_dat := null;
- p_ertek := null;
- select azon into p_azon from szerelo.sz_auto where rendszam=p_rendszam;
- select af.datum, af.ertek into p_dat, p_ertek
- from szerelo.sz_autofelertekeles af inner join szerelo.sz_auto A
- ON AF.AUTO_AZON=a.azon
- where a.rendszam=p_rendszam and af.datum = (select max(datum)
- from szerelo.sz_autofelertekeles
- where auto_azon=p_azon);
- IF p_dat is null and p_ertek is null THEN
- select elso_vasarlasi_ar, elso_vasarlas_idopontja into p_ertek, p_dat
- from szerelo.sz_auto where rendszam=p_rendszam;
- END IF;
- EXCEPTION
- WHEN NO_DATA_FOUND THEN p_dat := null; p_ertek := null;
- WHEN TOO_MANY_ROWS THEN RAISE_APPLICATION_ERROR(-20100,'Nem egyértelm? felértékelési dátum.');
- END p01;
- /
- DECLARE
- p_dat szerelo.sz_autofelertekeles.datum%TYPE;
- p_ertek szerelo.sz_autofelertekeles.ertek%TYPE;
- BEGIN
- p01('PAP270',p_dat,p_ertek);
- dbms_output.put_line(p_dat||' '||p_ertek);
- END;
- /
- 6p
- --2
- DROP TABLE utolso_felertekeles;
- CREATE TABLE utolso_felertekeles(
- --rendszam SZERELO.SZ_AUTO.rendszam%TYPE PRIMARY KEY,
- rendszam VARCHAR2(10 BYTE) PRIMARY KEY,
- --felertekeles_erteke szerelo.sz_autofelertekeles.ertek%TYPE,
- felertekeles_erteke NUMBER(20,0),
- --felertekeles_datum szerelo.sz_autofelertekeles.datum%TYPE,
- felertekeles_datuma DATE,
- kivetel VARCHAR2(50)
- );
- /
- 2p
- --3
- DECLARE
- --t_rekord utolso_felertekeles%ROWTYPE;
- FUNCTION f03(p_marka SZERELO.SZ_AUTOMARKA.nev%TYPE) RETURN NUMBER IS
- p_rendszam szerelo.sz_autofelertekeles.datum%TYPE;
- p_ertek szerelo.sz_autofelertekeles.ertek%TYPE;
- p_datum szerelo.sz_autofelertekeles.datum%TYPE;
- back NUMBER;
- kivetel NUMBER := 0;
- CURSOR c1 IS
- select a.rendszam
- from szerelo.sz_auto a inner join szerelo.sz_autotipus at
- on a.tipus_azon=at.azon inner join szerelo.sz_automarka am
- on at.marka=am.nev
- where am.nev=p_marka;
- BEGIN
- --valami EXECUTE('DROP TABLE utolso_felertekeles; CREATE TABLE... (ami fent a létrehozás');
- OPEN c1; LOOP
- EXIT WHEN c1%NOTFOUND;
- FETCH c1 INTO p_rendszam;--, p_ertek;
- p01(p_rendszam, p_datum, p_ertek);
- INSERT INTO utolso_felertekeles
- VALUES(p_rendszam, p_ertek, p_datum, 'nope');
- END LOOP;
- back := c1%ROWCOUNT;
- CLOSE c1;
- dbms_output.put_line('lolf');
- return back;
- EXCEPTION
- WHEN OTHERS THEN
- INSERT INTO utolso_felertekeles
- VALUES (p_rendszam, null, null, SQLERRM);
- return back;
- END f03;
- BEGIN
- dbms_output.put_line(f03('Ford'));
- dbms_output.put_line('lolb');
- END;
- /
- 2p
- DROP TABLE autofelertekeles;
- CREATE TABLE autofelertekeles AS
- select * from szerelo.sz_autofelertekeles;
- DROP TABLE sauto;
- CREATE TABLE sauto AS
- select * from szerelo.sz_auto;
- DROP TABLE auto_tulajdonosa;
- CREATE TABLE auto_tulajdonosa AS
- select * from szerelo.sz_auto_tulajdonosa;
- --4
- DECLARE
- p_rendszam szerelo.sz_auto.rendszam%TYPE;
- p_ertek szerelo.sz_autofelertekeles.ertek%TYPE;
- p_datum szerelo.sz_autofelertekeles.datum%TYPE;
- p_azon szerelo.sz_auto.azon%TYPE;
- p_tulaj_azon auto_tulajdonosa.tulaj_azon%TYPE;
- p_rozsa auto_tulajdonosa.tulaj_azon%TYPE;
- BEGIN
- select a.rendszam, a.azon into p_rendszam, p_azon
- from szerelo.sz_auto a inner join szerelo.sz_auto_tulajdonosa at --nem a saját táblámat használom, de azt módosítom, de nem akartam "elrontani" (csúnyábban írtam volna, de mégis csak egyetem :D)
- on a.azon=at.auto_azon inner join szerelo.sz_tulajdonos t
- on at.tulaj_azon=t.azon
- where t.nev='Rózsa Attila';
- p01(p_rendszam, p_datum, p_ertek);
- p_ertek := p_ertek*0.8;
- p_datum := sysdate; --vásárlás dátuma
- INSERT INTO autofelertekeles
- VALUES (p_azon, p_datum-1, p_ertek);
- select azon into p_tulaj_azon
- from szerelo.sz_tulajdonos where nev='Papp Flóra';
- select azon into p_rozsa
- from SZERELO.SZ_TULAJDONOS where nev='Rózsa Attila';
- UPDATE auto_tulajdonosa SET vasarlas_ideje=sysdate, auto_azon=p_azon, tulaj_azon=p_tulaj_azon
- WHERE tulaj_azon=p_rozsa;
- dbms_output.put_line('Autó új értéke: '||p_ertek);
- dbms_output.put_line('Vásárlás ideje: '||to_char(sysdate,'yyyy.mm.dd hh24:mi:ss'));
- END;
- /
- 6p
- select a.rendszam
- from szerelo.sz_auto a inner join szerelo.sz_auto_tulajdonosa at
- on a.azon=at.auto_azon inner join szerelo.sz_tulajdonos t
- on at.tulaj_azon=t.azon
- where t.nev='Rózsa Attila';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement