Hi Stefan,
vielleicht hilft dir u.a. Beispiel weiter. Ich arbeite in letzter Zeit nicht mehr viel mit PLSQL, hab das Ding aber noch auf einer CD gefunden. Daher ist ein bischen viel Schnick-Schnack drumrum.
Declare
Summe number(1);
CURSOR c_Menge IS
select h.Bezeichnung As Herstellerbez, h.hersteller_nr AS Herstellernummer, count(*) As Anzahl
from Hersteller h, hersteller_typ ht
where ht.hersteller_nr = h.hersteller_nr
group by h.bezeichnung, h.hersteller_nr
– having count (*) >=5; wenn bereits hier gefiltert wird
order by h.bezeichnung;
CURSOR c_typ( p_HerstellerNr Hersteller.Hersteller_nr%Type) IS --oder number
select t.bezeichnung As Typbezeichnung
from typ t, hersteller_typ ht
where ht.typ_nr = t.typ_nr
and ht.hersteller_nr = p_HerstellerNr
order by t.typ_nr;
BEGIN
Summe:=0;
For rec_Ausgabe1 in c_Menge LOOP
if rec_Ausgabe1.Anzahl >=5 Then
dbms_output.put_line(‚Hersteller :‘||
’ '||rec_Ausgabe1.Herstellerbez||
’ ‚||‚Anzahl vorhandener Typen :‘||
’ ‚||to_char(rec_Ausgabe1.Anzahl));
for rec_Ausgabe2 in c_typ(rec_Ausgabe1.Herstellernummer) LOOP
dbms_output.put_line(rec_Ausgabe2.Typbezeichnung);
Summe:=1;
END LOOP; --Schleife Typausgabe ende
End if;
END LOOP;-- Schleife Menge ende
if Summe = 0 Then
dbms_output.put_line(‘------------Kein Datensatz vorhanden--------------‘);
End if;
END;
/
Grüße
Ratloser