Oracle のセットアップ

この説明では、Oracle データベースを使用していることを前提とし、以下のタスクを順番に説明していきます。

始める前に

データベースを作成する必要があります。

データベース表を作成してそれにアクセスする際には、以下の問題に注意してください。

  1. テキスト・エディターで新規文書を開き、DBINPUT_CUSTOMER 表を作成する以下のスクリプトをコピーして新規文書に貼り付け、そのファイルに dbinput_create_tables_oracle.sql という名前を付けて保存します。
    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;
            
  2. データベースにアクセスするために開いたコマンド・ウィンドウで、dbinput_create_tables_oracle.sql が入っているフォルダーに移動し、次のコマンドを入力します。
    sqlplus <uid>/<password> @dbinput_create_tables_oracle.sql

    スクリプトの実行が終了するまで待ちます。 スクリプトを初めて実行すると、次のようなメッセージが表示されます。

    ORA-00942: table or view does not exist
    メッセージを無視します。メッセージが表示される理由は、スクリプトは DBINPUT_CUSTOMER および DBINPUT_EVENTS という既存の表を新規表の作成前に除去しようとしますが、これまでスクリプトを実行したことがない場合は、表が存在しないからです。

「データベースのセットアップ」に戻る

サンプルのホームに戻る