You are on page 1of 2

CREATE TABLE EDW.

PRICING_HISTORY
(
PRICING_HISTORY_SKEY NUMBER(20) NULL,
PRODUCT_SKEY NUMBER(20) DEFAULT 0 NOT NULL,
PHARMACY_CODE VARCHAR2(4) NOT NULL,
RECORD_NUM VARCHAR2(6) NOT NULL,
EFFECTIVE_DATE DATE NULL,
PHARMACY_SKEY NUMBER(20) DEFAULT 0 NOT NULL,
PRICE_BASE VARCHAR2(3) NOT NULL,
PRICE_AMOUNT NUMBER(9,5) NOT NULL,
LOAD_DATE DATE DEFAULT SYSDATE NOT NULL,
LOAD_USER VARCHAR2(40) NOT NULL,
UPDATE_DATE DATE NULL,
UPDATE_USER VARCHAR2(40) NULL,
CONSTRAINT REFPHARMACY175
FOREIGN KEY (PHARMACY_SKEY)
REFERENCES EDW.PHARMACY (PHARMACY_SKEY)
DISABLE
)
TABLESPACE EDWP_DATA
NOLOGGING
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
STORAGE(FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT)
NOPARALLEL
NOCACHE
/
CREATE INDEX EDW.IDX_EFFDATE_PHC_RNUM_PBASE
ON EDW.PRICING_HISTORY(EFFECTIVE_DATE,PHARMACY_CODE,RECORD_NUM,PRICE_BASE)
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE EDWP_DATA
STORAGE(FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT)
NOLOGGING
NOPARALLEL
NOCOMPRESS
/
CREATE INDEX EDW.IDX_PHARM_RECORD
ON EDW.PRICING_HISTORY(PHARMACY_CODE,RECORD_NUM)
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE EDWP_DATA
STORAGE(FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT)
NOLOGGING
NOPARALLEL
NOCOMPRESS
/
CREATE INDEX EDW.IDX_PHARM_RECORD_EFFDATE
ON EDW.PRICING_HISTORY(PHARMACY_CODE,RECORD_NUM,EFFECTIVE_DATE)
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE EDWP_DATA
STORAGE(FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT)
NOLOGGING
NOPARALLEL
NOCOMPRESS
/
CREATE INDEX EDW.IDX_PHARM_BASE
ON EDW.PRICING_HISTORY(PHARMACY_CODE,RECORD_NUM,PRICE_BASE,EFFECTIVE_DATE)
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE EDWP_DATA
STORAGE(FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT)
NOLOGGING
NOPARALLEL
NOCOMPRESS
/
ALTER TABLE EDW.PRICING_HISTORY
ADD CONSTRAINT PK_PRICING_HISTORY
PRIMARY KEY (PRICING_HISTORY_SKEY) DISABLE NOVALIDATE
/
CREATE OR REPLACE TRIGGER EDW.TRI_PRICING_HISTORY
BEFORE INSERT
ON EDW.PRICING_HISTORY
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN

SELECT SKEY_PRICING_HISTORY.nextval into :new.PRICING_HISTORY_skey from dual;

select sysdate into :new.load_date from dual;

END;

/
CREATE OR REPLACE TRIGGER EDW.TRU_PRICING_HISTORY
BEFORE UPDATE
ON EDW.PRICING_HISTORY
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN

select sysdate into :new.update_date from dual ;

END;
/

You might also like