Bei den folgenden Anweisungen wird davon ausgegangen, dass Sie eine Oracle-Datenbank verwenden. Sie werden durch die folgenden Tasks geführt:
Vorbereitungen
Sie müssen eine Datenbank erstellen.
Hinweis: Berücksichtigen Sie Folgendes beim Erstellen der Datenbanktabellen und beim Zugriff darauf:
DROP TABLE "DBINPUT_CUSTOMER";
CREATE TABLE "DBINPUT_CUSTOMER" (
"PKEY" VARCHAR(10) NOT NULL PRIMARY KEY,
"FIRSTNAME" VARCHAR(20),
"LASTNAME" VARCHAR(20),
"CCODE" VARCHAR(10)
);
DROP TABLE "DBINPUT_EVENTS";
CREATE TABLE "DBINPUT_EVENTS" (
"EVENT_ID" INTEGER PRIMARY KEY
"OBJECT_KEY" VARCHAR(80) NOT NULL,
"OBJECT_VERB" VARCHAR(40) NOT NULL
);
CREATE SEQUENCE "DBINPUT_SEQUENCE" (start with 1 increment by 1 nomaxvalue);
CREATE TRIGGER "DBIN_SEQ_TRIG"
BEFORE INSERT ON "DBINPUT_EVENTS"
FOR EACH ROW
BEGIN
SELECT DBINPUT_SEQUENCE.nextval INTO :NEW.EVENT_ID FROM dual;
END;
CREATE TRIGGER "DBIN_CUST_EVENT"
AFTER INSERT OR DELETE OR UPDATE ON "DBINPUT_CUSTOMER"
REFERENCING NEW AS N OLD AS O
FOR EACH ROW
BEGIN
IF inserting THEN
INSERT INTO DBINPUT_EVENTS(OBJECT_KEY, OBJECT_VERB)
VALUES(:N.PKEY,'Create');
END IF;
IF updating THEN
INSERT INTO DBINPUT_EVENTS(OBJECT_KEY, OBJECT_VERB)
VALUES(:N.PKEY,'Update');
END IF;
IF deleting THEN
INSERT INTO DBINPUT_EVENTS(OBJECT_KEY, OBJECT_VERB)
VALUES(:O.PKEY,'Delete');
END IF;
END;
sqlplus <Benutzer-ID>/<Kennwort> @dbinput_create_tables_oracle.sql
Warten Sie das Ende des Scripts ab. Wenn Sie das Script zum ersten Mal ausführen, wird die folgende Nachricht angezeigt:
ORA-00942: table or view does not exist (Tabelle oder Ansicht ist nicht vorhanden)Ignorieren Sie diese Nachricht. Die Nachricht wird angezeigt, weil das Script versucht, die möglicherweise bereits vorhandenen Tabellen 'DBINPUT_CUSTOMER' und 'DBINPUT_EVENTS' zu löschen, bevor neue Tabellen erstellt werden. Wenn das Script jedoch zum ersten Mal ausgeführt wird, sind keine Tabellen vorhanden.