Projekt Oracle I


der Studierenden Britta Kleinhempel, Davor Bandic und Ines Einsporn

last update: 02. August 2002

 

Benutzung von Packages

rem*** Zwei vorbereitende Views
create or replace view v1 as select p.pname, r.rg_datum
          from tblPerson p, tblProjektangebot pa, tblAngebot a, tblAuftrag au, tblRechnung r
          where p.idp=pa.idp and pa.idang=a.idang and a.idang=au.idang and au.au_id=r.au_id ;

select * from v1;


create or replace view v2 as select m.Mahndatum , m.Mahnstufe , p.pname, r.rg_datum
          from tblPerson p, tblProjektangebot pa, tblAngebot a,
          tblAuftrag au, tblRechnung r, tblMahnung m
          where p.idp=pa.idp and pa.idang=a.idang
          and a.idang=au.idang and au.au_id=r.au_id and r.rg_id=m.rg_id;

select * from v2;


rem*** Packages
rem***Ermittlung der unbezahlten Rechnungen und der eventuell dazu gehörenden Mahnungen
set serveroutput on;
create or replace package pacMahn is

procedure pzdOffeneR(pardatum date);
procedure pzdOffeneRmitMahnung(pardatum date,parmahnstufe number);
procedure pzdöffnen;
end pacMahn;
/
show errors;

create or replace package body pacMahn is
procedure pzdöffnen is
begin
pzdOffeneR(to_date('1.1.01','dd.mm.yy'));
pzdOffeneRmitMahnung (to_date('1.1.01','dd.mm.yy'),1);
end;


procedure pzdOffeneR(pardatum date)
is
DS V1%rowType;
cursor c1 is select *  from v1 where rg_datum between pardatum and sysdate;
Begin
open  c1;
loop
  fetch c1 into ds;
  exit when c1%notfound;
  dbms_output.put_line( ds.pname || ' hat noch eine offene Rechnung vom ' || ds.rg_Datum||'.');
end loop;
end;


procedure pzdOffeneRmitMahnung(pardatum date,parmahnstufe number)
is
ds v2%rowtype;
cursor c2 is select * from v2 where rg_datum between pardatum and sysdate and mahnstufe>=parmahnstufe;
begin
open c2;
loop
  fetch c2 into ds;
  exit when c2%notfound;
dbms_output.put_line(ds.pname||' wurde am '|| ds.Mahndatum||' zum '||ds.Mahnstufe||
'. Mal zum Bezahlen der Rechnung vom '||ds.rg_datum||' angemahnt. ');
end loop;
end;
end pacMahn;
/
show errors;
execute pacmahn.pzdöffnen;



• eMail-Kontakt Webmaster • © 2002 New Age Webdesign • optimiert für 1024 x 768 Pixel •