It is a function. And it is for the same user. My admin has given me his code, but I do not understand the PL/SQL Language. Do you? Thanks for you reply!
Michael
-- $Id: insert_person.sql,v 1.6 2001/11/15 17:13:09 michels Exp michels $
-- Uebergabe
-- p_person_seq: person.kennid, Typ: varchar2,
-- Bedeutung: Nummer der Person, kann uebergeben werden, wenn nicht wird selbst erzeugt
-- p_vorname: person.vorname, Typ: varchar2
-- p_name: person.name, Typ: varchar2
-- p_titel: person.titel, Typ: varchar2
-- p_anrede_id: Typ: number, Bedeutung: zeigt auf Tabelle anrede,
-- kann uebergeben werden, entweder p_anrede_id oder p_anrede_text
-- p_anrede_text: Typ varchar2, Bedeutung: wie anrede_id,
-- kann uebergeben werden, entweder p_anrede_id oder p_anrede_text
-- p_ansprechpartner_id: number, Bedeutung: ID des Ansprechpartners, Mitarbeiter von Cognid
create or replace function insert_person (
p_person_seq IN person.Kenn_ID%TYPE,
p_vorname IN person.Vorname%TYPE,
p_name IN person.Name%TYPE,
p_titel IN person.titel%TYPE,
p_anrede_id IN Anrede.id%TYPE,
p_anrede_text IN anrede.text%TYPE,
p_ansprechpartner_id IN number,
p_Schlagwort_ID IN person.Schlagwort_ID%TYPE) RETURN NUMBER
AS
v_person_seq NUMBER;
v_anrede_id NUMBER;
BEGIN
IF nvl(p_anrede_id,0) = 0 THEN -- wenn id 0 oder null dann suchen in Tabelle
BEGIN
select id into v_anrede_id from anrede where text = p_anrede_text;
EXCEPTION WHEN NO_DATA_FOUND THEN -- wenn anrede_id nicht gefunden wird => default 1
v_anrede_id := 1;
END;
END IF;
IF nvl(p_person_seq,0) = 0 THEN -- kenn_id nicht mitgegeben, also per sequencer holen
select Anrede_SEQ.nextval into v_person_seq from dual;
ELSE
v_person_seq := p_person_seq; -- Parameter uebernehmen
END IF;
IF nvl(p_ansprechpartner_id,0) != 0 THEN -- kontakt eintragen
-- kontakt_art_id = 1 bedeutet Ansprechpartner
insert into kontakt (id, von_person_id, datum, zu_person_id,
kontakt_art_id)
values (kontakt_seq.nextval, p_ansprechpartner_id,
sysdate, v_person_seq, 1);
END IF;
insert into person (kenn_id, name, vorname, titel, anrede_id)
values
(v_person_seq, p_name, p_vorname, p_titel, v_anrede_id);
RETURN 0;
END insert_person;
/
show errors;