next up previous contents
Nächste Seite: proc_ins_forschungsprojekt Aufwärts: Prozeduren Vorherige Seite: proc_ins_funktion   Inhalt

proc_ins_klausur

CREATE OR REPLACE PROCEDURE PROC_INS_KLAUSUR
(
  R_ID IN OUT INTEGER,
  R_VERSION IN OUT INTEGER,
  R_KURS_ID IN INTEGER,
  R_KURS_VERSION IN INTEGER,
  R_ART IN VARCHAR2,
  R_ORT IN VARCHAR2,
  R_DATUM IN DATE,
  R_BEGINN IN DATE,
  R_ENDE IN DATE
)
IS
BEGIN

  IF (R_ID IS NULL) THEN

    /* neuen Inhalt erstellen */
    SELECT ID_Inhalt.nextval INTO R_ID FROM Dual;
    INSERT INTO inhalt (Id, Inhaltstyp_Id) VALUES (R_ID, 7);
    R_VERSION := 1;

  ELSE

     /* neue Version erstellen */
     SELECT MAX(Version)+1 INTO R_VERSION 
     FROM Versionierter_inhalt WHERE Id = R_ID;

  END IF;

  /* neuen versionierten Inhalt erstellen */
  INSERT INTO Versionierter_inhalt (Id, Version) 
  VALUES (R_ID, R_VERSION);

  /* Einfuegen der Daten in KLAUSUR */
  INSERT INTO KLAUSUR
    (ID,VERSION,KURS_ID,KURS_VERSION,ART,ORT,DATUM,BEGINN,ENDE)
  VALUES
    (R_ID,R_VERSION,R_KURS_ID,R_KURS_VERSION,R_ART,R_ORT,R_DATUM,
     R_BEGINN,R_ENDE);


  /* Aktivieren */
  proc_aktivieren (R_ID, R_VERSION);

END;
/



Christian Raskob 2003-02-14