This is an old revision of the document!
CREATE OR REPLACE TYPE ausbildung AS TABLE OF VARCHAR2(100)
CREATE TABLE "HR"."KURSTEILNEHMER" ("ID" NUMBER, "NAME" VARCHAR2(100), "AUSBILDUNG" "HR"."AUSBILDUNG" ) NESTED TABLE ausbildung STORE AS store_ausbildung
CREATE SEQUENCE "HR"."S";
PROCEDURE teilnehmer_ausbildung ( p_name VARCHAR2, p_add_ausbildung VARCHAR2) IS t_ausbildung ausbildung; c INTEGER; f BOOLEAN := FALSE; al number; BEGIN SELECT COUNT (id) INTO c FROM kursteilnehmer WHERE name = p_name; IF c = 0 THEN INSERT INTO kursteilnehmer (id, name, ausbildung) VALUES (s.NEXTVAL, p_name, ausbildung (p_add_ausbildung)); ELSE SELECT ausbildung INTO t_ausbildung FROM kursteilnehmer WHERE name = p_name; if t_ausbildung is null then al := 0; t_ausbildung := ausbildung(); else al := t_ausbildung.last; end if; FOR i IN 1 .. al LOOP IF t_ausbildung (i) = p_add_ausbildung THEN f := TRUE; END IF; END LOOP; IF f = FALSE THEN t_ausbildung.EXTEND; t_ausbildung (al + 1) := p_add_ausbildung; UPDATE kursteilnehmer SET ausbildung = t_ausbildung WHERE name = p_name; END IF; END IF; /* FOR i IN 1 .. t_ausbildung.LAST LOOP DBMS_OUTPUT.put_line (t_ausbildung (i)); END LOOP;*/ END; END;