Gå til innhold

Anbefalte innlegg

Hei, har en liten oppgave på skolen ang. PL/SQL og er ikke helt stødig. Så jeg håper på hjelp her inne.

 

TABELLENE - radene:

POST - Postnr - Postested

KUNDE - KundeNr - Navn - Adresse - Postnr - FDato

LIV - PoliseNr - KundeNr - Premie - AntTermin - SpareAndel - Slado - UtBetDato

 

1. Skriv en PL/SQL-prosedyre som beregner (og skriver ut til skjerm) samlet årlig premie for

en gitt kunde (kundenr).

 

2. Lag en trigger som kontrollerer at spareandelen er mellom 5 % og 30 % ved innlegging av

data i LIV-tabellen. En feilmelding skal genereres hvis spareandelen er utenfor intervallet.

 

3. Lag en trigger som ved innbetaling oppdaterer saldo i tabellen LIV.

 

Har prøvd å gjøre noen forsøk selv, men vet ikke helt om jeg tør å poste dem her. :)

 

Takk for eventuell hjelp! :)

Lenke til kommentar
Videoannonse
Annonse

1.

CREATE PROCEDURE arlig_premie

AS

v_arlig_premie = INTEGER;

 

BEGIN

SELECT KundeNr, Premie, AntTermin

FROM KUNDE, LIV

v_arlig_premie = premie * AntTermin;

END ;

.

run;

PRINT :v_arlig_premie;

 

2.

CREATE TRIGGER kontroll_spareandel

BEFORE INSERT OR UPDATE OF SpareAndel ON Liv

FOR EACH ROW

 

DECLARE

e_feil_spareandel EXCEPTION;

BEGIN

IF :new.spareandel >=5% AND <=30% THEN

RAISE e_feil_spareandel;

END IF;

 

EXCEPTION

WHEN e_feil_sparenandel THEN

RAISE_APPLICATION_ERROR(-20001, 'Spareandelen er ikke innenfor 5% og 30%');

ROLLBACK;

END;

/

 

3.

CREATE TRIGGER saldo_oppdater

AFTER INSERT OF Saldo ON Liv

FOR EACH ROW

UPDATE :old.saldo = :new.saldo

WHERE

 

////////

Dette er alt jeg har, og er overbevist at det er bare tullball :S

 

EDIT:

Vi bruker MySQL på skolen. Men får lov til å bruke Oracle syntaks om vi vil det.

Endret av espset
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...