Bei den folgenden Anweisungen wird davon ausgegangen, dass Sie eine Oracle-Datenbank verwenden. Sie werden durch die folgenden Tasks geführt:
Wenn bei Ihrer Installation die Standarddatenbank nicht erstellt wurde, erstellen Sie vor der Ausführung dieser Anweisungen zunächst eine Datenbank mithilfe der Anweisungen Ihres Datenbankadministrators.
Sie können diese Schritte auch mithilfe vordefinierter SQL-Scripts ausführen: Kehren Sie Zurück zum Beginn des Mustercodes und wählen Sie eine der Importoptionen aus. Nach dem Import können Sie die Datenbank auf Basis der SQL-Scripts einrichten.
Hinweis: Berücksichtigen Sie Folgendes beim Erstellen der Datenbanktabellen und beim Zugriff darauf:
-- Erstellen Sie zunächst die für Anwendungsdaten benötigten Tabellen DROP TABLE "ADAPTER_CUSTOMER" ; CREATE TABLE "ADAPTER_CUSTOMER" ( "PKEY" VARCHAR(10) NOT NULL PRIMARY KEY, "FIRSTNAME" VARCHAR(20), "LASTNAME" VARCHAR(20), "ADDRESS" VARCHAR(10), "CCODE" VARCHAR(10) ); ALTER TABLE "ADAPTER_CUSTOMER" ADD CONSTRAINT "CUST_ADDR_FK" FOREIGN KEY ("ADDRESS") REFERENCES "ADAPTER_ADDRESS" ("PKEY") ON DELETE CASCADE; DROP TABLE "ADAPTER_ADDRESS" ; CREATE TABLE "ADAPTER_ADDRESS" ( "PKEY" VARCHAR(10) NOT NULL PRIMARY KEY, "FIRSTLINE" VARCHAR(20), "SECONDLINE" VARCHAR(20), "CODE" VARCHAR(10), "CITY" VARCHAR(20), "COUNTRY" VARCHAR(10)); DROP TABLE "ADAPTER_INVOICE" ; CREATE TABLE "ADAPTER_INVOICE" ( "PKEY" VARCHAR(10) NOT NULL PRIMARY KEY, "ITEM" VARCHAR(10) NOT NULL, "QUANTITY" INTEGER NOT NULL, "CUSTOMER" VARCHAR(10) NOT NULL); ALTER TABLE "ADAPTER_INVOICE" ADD CONSTRAINT "INV_CUST_FK" FOREIGN KEY ("CUSTOMER") REFERENCES "ADAPTER_CUSTOMER" ("PKEY") ON DELETE CASCADE; DROP TABLE "IBM_EVENTS" ; CREATE TABLE "IBM_EVENTS" ( "EVENT_ID" INTEGER PRIMARY KEY, "CONNECTOR_ID" VARCHAR(40), "OBJECT_KEY" VARCHAR(10) NOT NULL, "OBJECT_NAME" VARCHAR(40) NOT NULL, "OBJECT_VERB" VARCHAR(40) NOT NULL, "EVENT_PRIORITY" INTEGER NOT NULL, "EVENT_TIME" TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP, "EVENT_STATUS" INTEGER NOT NULL, "EVENT_COMMENT" VARCHAR(100) ); CREATE SEQUENCE "IBM_SEQUENCE" (start with 1 increment by 1 nomaxvalue); CREATE TRIGGER "IBM_SEQ_TRIG" BEFORE INSERT ON "IBM_EVENTS" FOR EACH ROW BEGIN SELECT DBINPUT_SEQUENCE.nextval INTO :NEW.EVENT_ID FROM dual; END; DROP TRIGGER "ADAP_CUST_EVENT"; CREATE TRIGGER "ADAP_CUST_EVENT" AFTER INSERT OR DELETE OR UPDATE ON "ADAPTER_CUSTOMER" REFERENCING NEW AS N OLD AS O FOR EACH ROW BEGIN IF inserting THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_CUSTOMER', 'Create', 1, 0); END IF; IF updating THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_CUSTOMER', 'Update', 1, 0); END IF; IF deleting THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_CUSTOMER', 'Delete', 1, 0); END IF; END; DROP TRIGGER "ADAP_ADD_EVENT"; CREATE TRIGGER "ADAP_ADD_EVENT" AFTER INSERT OR DELETE OR UPDATE ON "ADAPTER_ADDRESS" REFERENCING NEW AS N OLD AS O FOR EACH ROW BEGIN IF inserting THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_ADDRESS', 'Create', 1, 0); END IF; IF updating THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_ADDRESS', 'Update', 1, 0); END IF; IF deleting THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_ADDRESS', 'Delete', 1, 0); END IF; END; DROP TRIGGER "ADAP_INV_EVENT"; CREATE TRIGGER "ADAP_INV_EVENT" AFTER INSERT OR DELETE OR UPDATE ON "ADAPTER_INVOICE" REFERENCING NEW AS N OLD AS O FOR EACH ROW BEGIN IF inserting THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_INVOICE', 'Create', 1, 0); END IF; IF updating THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_INVOICE', 'Update', 1, 0); END IF; IF deleting THEN INSERT INTO IBM_EVENTS(OBJECT_KEY, OBJECT_NAME, OBJECT_VERB, EVENT_PRIORITY, EVENT_STATUS) VALUES(:N.PKEY,'ADAPTER_INVOICE', 'Delete', 1, 0); END IF; END;
sqlplus <uid>/<Kennwort> @adapter_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, kann das Script keine Tabelle finden.