Configurando o Oracle

Essas instruções presumem que você esteja utilizando um banco de dados Oracle e orienta sobre as seguintes tarefas:

Se a sua instalação não criou o banco de dados padrão, crie um banco de dados, seguindo suas instruções do DBA, antes de seguir estas instruções.

Também é possível executar estas etapas executando scripts SQL predefinidos: Retorne para o início da amostra e escolha uma das opções de importação. Após a importação, é possível escolher configurar o banco de dados a partir dos scripts SQL.

Nota. Quando você cria e acessa as tabelas de banco de dados, fique atento como os seguintes problemas:

  1. Abra um novo documento em um editor de texto, copie e cole o seguinte script, que cria as tabelas DAPTER_ADDRESS, ADAPTER_CUSTOMER, ADAPTER_INVOICE e IBM_EVENTS, no documento, nomeie o arquivo como adatper_create_tables_oracle.sql e salve o arquivo.
    -- Primeiro crie as tabelas necessárias para Dados do Aplicativo
    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" (iniciar com 1 incremento por 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;
    	
    	
            
  2. Em uma janela de comando aberta para acessar seu banco de dados, mova para a pasta que contém adapter_create_tables_oracle.sql e insira o comando a seguir:
    sqlplus <uid>/<password> @adapter_create_tables_oracle.sql

    Aguarde a conclusão do script. Se estiver executando o script pela primeira vez, a mensagem a seguir é exibida:

    ORA-00942: table or view does not exist
    Ignore essa mensagem. A mensagem é exibida porque o script tenta remover as tabelas existentes, chamadas DBINPUT_CUSTOMER e DBINPUT_EVENTS, antes de criar novas tabelas, mas se o script não tiver sido executado antes, ele não poderá localizar a tabela existente.

Voltar para Configurando o Banco de Dados

Voltar para Home da Amostra