Hallo zusammen,
ich habe eine funktion, die mehrere Personen, die zu einer Akte gehören in einem String ausgeben soll.
Nun existiert eine "Dummy"-Person die dort nicht auftauchen soll.
Wenn ich es so mache kommt ein Leer-String zurück:
Code:
create or replace function GET_INVLIST(inCasekey NUMBER) return VARCHAR as
CURSOR c_cur is select Name.name,Nameindividual.Firstname
from casename, name, NameIndividual
where Casename.Namekey=Name.Namekey
and Casename.Nametypekey=209
and Casename.Casekey=inCaseKey
and NameIndividual.Namekey=Name.Namekey
and Name.Name<>'DUMMY_INV'
;
tsatz c_cur%ROWTYPE;
satz varchar(2048);
begin
satz:='';
for tsatz in c_cur
loop
Exit when c_cur%NOTFOUND;
satz:=satz||tsatz.Name||', '||tsatz.Firstname||'; ';
end loop;
RETURN(trim(trailing ';' from trim(satz)));
end;
/
So funktioniert es:
Code:
create or replace function GET_INVLIST(inCasekey NUMBER) return VARCHAR as
CURSOR c_cur is select Name.name,Nameindividual.Firstname
from casename, name, NameIndividual
where Casename.Namekey=Name.Namekey
and Casename.Nametypekey=209
and Casename.Casekey=inCaseKey
and NameIndividual.Namekey=Name.Namekey
and Name.NameKey<>3
;
tsatz c_cur%ROWTYPE;
satz varchar(2048);
begin
satz:='';
for tsatz in c_cur
loop
Exit when c_cur%NOTFOUND;
satz:=satz||tsatz.Name||', '||tsatz.Firstname||'; ';
end loop;
RETURN(trim(trailing ';' from trim(satz)));
end;
/
Kann mir jemand erklären warum?
Gruß
K-H