-- Generated by Oracle SQL Developer Data Modeler 3.1.0.691
-- at: 2013-04-25 21:30:09 IST
-- site: Oracle Database 11g
-- type: Oracle Database 11g
DROP VIEW OE.ACCOUNT_MANAGERS
;
DROP VIEW OE.BOMBAY_INVENTORY
;
DROP VIEW OE.CUSTOMERS_VIEW
;
DROP VIEW OE.OC_CORPORATE_CUSTOMERS
;
DROP VIEW OE.OC_CUSTOMERS
;
DROP VIEW OE.OC_INVENTORIES
;
DROP VIEW OE.OC_ORDERS
;
DROP VIEW OE.OC_PRODUCT_INFORMATION
;
DROP VIEW OE.ORDERS_VIEW
;
DROP VIEW OE.PRODUCTS
;
DROP VIEW OE.PRODUCT_PRICES
;
DROP VIEW OE.SYDNEY_INVENTORY
;
DROP VIEW OE.TORONTO_INVENTORY
;
DROP TABLE OE.CATEGORIES_TAB CASCADE CONSTRAINTS
;
DROP TABLE OE.CUSTOMERS CASCADE CONSTRAINTS
;
DROP TABLE OE.INVENTORIES CASCADE CONSTRAINTS
;
DROP TABLE OE.ORDERS CASCADE CONSTRAINTS
;
DROP TABLE OE.ORDER_ITEMS CASCADE CONSTRAINTS
;
DROP TABLE OE.PRODUCT_DESCRIPTIONS CASCADE CONSTRAINTS
;
DROP TABLE OE.PRODUCT_INFORMATION CASCADE CONSTRAINTS
;
DROP TABLE OE.PROMOTIONS CASCADE CONSTRAINTS
;
DROP TABLE OE.PURCHASEORDER CASCADE CONSTRAINTS
;
DROP TABLE OE.WAREHOUSES CASCADE CONSTRAINTS
;
CREATE USER HR
IDENTIFIED BY
ACCOUNT UNLOCK
;
CREATE USER OE
IDENTIFIED BY
ACCOUNT UNLOCK
;
CREATE USER SYS
IDENTIFIED BY
ACCOUNT UNLOCK
;
CREATE OR REPLACE TYPE OE.ACTIONS_T
;
/
CREATE OR REPLACE TYPE OE.ACTION_T
;
/
CREATE OR REPLACE TYPE OE.CATALOG_TYP
;
/
CREATE OR REPLACE TYPE OE.CATEGORY_TYP
;
/
CREATE OR REPLACE TYPE OE.COMPOSITE_CATEGORY_TYP
;
/
CREATE OR REPLACE TYPE OE.CORPORATE_CUSTOMER_TYP
;
/
CREATE OR REPLACE TYPE OE.CUSTOMER_TYP
;
/
CREATE OR REPLACE TYPE OE.CUST_ADDRESS_TYP
;
/
CREATE OR REPLACE TYPE OE.INVENTORY_TYP
;
/
CREATE OR REPLACE TYPE OE.LEAF_CATEGORY_TYP
;
/
CREATE OR REPLACE TYPE OE.LINEITEMS_T
;
/
CREATE OR REPLACE TYPE OE.LINEITEM_T
;
/
CREATE OR REPLACE TYPE OE.ORDER_ITEM_TYP
;
/
CREATE OR REPLACE TYPE OE.ORDER_TYP
;
/
CREATE OR REPLACE TYPE OE.PART_T
;
/
CREATE OR REPLACE TYPE OE.PRODUCT_INFORMATION_TYP
;
/
CREATE OR REPLACE TYPE OE.PURCHASEORDER_T
;
/
CREATE OR REPLACE TYPE OE.REJECTION_T
;
/
CREATE OR REPLACE TYPE OE.SHIPPING_INSTRUCTIONS_T
;
/
CREATE OR REPLACE TYPE OE.WAREHOUSE_TYP
;
/
CREATE OR REPLACE TYPE OE.ACTION_V
IS VARRAY ( 4 ) OF ACTION_T
;
/
CREATE OR REPLACE TYPE OE.INVENTORY_LIST_TYP
IS TABLE OF INVENTORY_TYP
;
/
CREATE OR REPLACE TYPE OE.LINEITEM_V
IS VARRAY ( 2147483647 ) OF LINEITEM_T
;
/
CREATE OR REPLACE TYPE OE.ORDER_ITEM_LIST_TYP
IS TABLE OF ORDER_ITEM_TYP
;
/
CREATE OR REPLACE TYPE OE.ORDER_LIST_TYP
IS TABLE OF ORDER_TYP
;
/
CREATE OR REPLACE TYPE OE.PHONE_LIST_TYP
IS VARRAY ( 5 ) OF VARCHAR2 (25)
;
/
CREATE OR REPLACE TYPE OE.PRODUCT_REF_LIST_TYP
IS TABLE OF NUMBER (6)
;
/
CREATE OR REPLACE TYPE OE.SUBCATEGORY_REF_LIST_TYP
IS TABLE OF REF CATEGORY_TYP
;
/
CREATE OR REPLACE TYPE OE.ACTIONS_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
ACTION ACTION_V
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.ACTION_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
ACTIONED_BY VARCHAR2 (10) ,
DATE_ACTIONED DATE
) FINAL
;
/
CREATE OR REPLACE TYPE OE.CATALOG_TYP
UNDER COMPOSITE_CATEGORY_TYP (
MEMBER FUNCTION GETCATALOGNAME
RETURN VARCHAR2 ,
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
) FINAL
;
/
CREATE OR REPLACE TYPE BODY OE.CATALOG_TYP
AS
MEMBER FUNCTION GETCATALOGNAME
RETURN VARCHAR2
AS
BEGIN
-- Return the category name from the supertype
RETURN self.category_name;
END;
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
AS
BEGIN
RETURN 'catalog_typ';
END;
END
;
/
CREATE OR REPLACE TYPE OE.CATEGORY_TYP
AS OBJECT
(
CATEGORY_NAME VARCHAR2 (50) ,
CATEGORY_DESCRIPTION VARCHAR2 (1000) ,
CATEGORY_ID NUMBER (2) ,
PARENT_CATEGORY_ID NUMBER (2) ,
NOT INSTANTIABLE MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
) NOT FINAL NOT INSTANTIABLE
;
/
CREATE OR REPLACE TYPE OE.COMPOSITE_CATEGORY_TYP
UNDER CATEGORY_TYP (
SUBCATEGORY_REF_LIST SUBCATEGORY_REF_LIST_TYP ,
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
) NOT FINAL
;
/
CREATE OR REPLACE TYPE BODY OE.COMPOSITE_CATEGORY_TYP
AS
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
AS
BEGIN
RETURN 'composite_category_typ';
END;
END
;
/
CREATE OR REPLACE TYPE OE.CORPORATE_CUSTOMER_TYP
UNDER CUSTOMER_TYP (
ACCOUNT_MGR_ID NUMBER (6)
) FINAL
;
/
CREATE OR REPLACE TYPE OE.CUSTOMER_TYP
AS OBJECT
(
CUSTOMER_ID NUMBER (6) ,
CUST_FIRST_NAME VARCHAR2 (20) ,
CUST_LAST_NAME VARCHAR2 (20) ,
CUST_ADDRESS CUST_ADDRESS_TYP ,
PHONE_NUMBERS PHONE_LIST_TYP ,
NLS_LANGUAGE VARCHAR2 (3) ,
NLS_TERRITORY VARCHAR2 (30) ,
CREDIT_LIMIT NUMBER (9,2) ,
CUST_EMAIL VARCHAR2 (30) ,
CUST_ORDERS ORDER_LIST_TYP
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.CUST_ADDRESS_TYP
AS OBJECT
(
STREET_ADDRESS VARCHAR2 (40) ,
POSTAL_CODE VARCHAR2 (10) ,
CITY VARCHAR2 (30) ,
STATE_PROVINCE VARCHAR2 (10) ,
COUNTRY_ID CHAR (2)
) FINAL
;
/
CREATE OR REPLACE TYPE OE.INVENTORY_TYP
AS OBJECT
(
PRODUCT_ID NUMBER (6) ,
WAREHOUSE WAREHOUSE_TYP ,
QUANTITY_ON_HAND NUMBER (8)
) FINAL
;
/
CREATE OR REPLACE TYPE OE.LEAF_CATEGORY_TYP
UNDER CATEGORY_TYP (
PRODUCT_REF_LIST PRODUCT_REF_LIST_TYP ,
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
) FINAL
;
/
CREATE OR REPLACE TYPE BODY OE.LEAF_CATEGORY_TYP
AS
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
AS
BEGIN
RETURN 'leaf_category_typ';
END;
END
;
/
CREATE OR REPLACE TYPE OE.LINEITEMS_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
LINEITEM LINEITEM_V
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.LINEITEM_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
ITEMNUMBER NUMBER (38) ,
DESCRIPTION VARCHAR2 (256) ,
PART PART_T
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.ORDER_ITEM_TYP
AS OBJECT
(
ORDER_ID NUMBER (12) ,
LINE_ITEM_ID NUMBER (3) ,
UNIT_PRICE NUMBER (8,2) ,
QUANTITY NUMBER (8) ,
PRODUCT_REF REF PRODUCT_INFORMATION_TYP
) FINAL
;
/
CREATE OR REPLACE TYPE OE.ORDER_TYP
AS OBJECT
(
ORDER_ID NUMBER (12) ,
ORDER_MODE VARCHAR2 (8) ,
CUSTOMER_REF REF CUSTOMER_TYP ,
ORDER_STATUS NUMBER (2) ,
ORDER_TOTAL NUMBER (8,2) ,
SALES_REP_ID NUMBER (6) ,
ORDER_ITEM_LIST ORDER_ITEM_LIST_TYP
) FINAL
;
/
CREATE OR REPLACE TYPE OE.PART_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
PART_NUMBER VARCHAR2 (14) ,
QUANTITY NUMBER (12,4) ,
UNITPRICE NUMBER (14,2)
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.PRODUCT_INFORMATION_TYP
AS OBJECT
(
PRODUCT_ID NUMBER (6) ,
PRODUCT_NAME VARCHAR2 (50) ,
PRODUCT_DESCRIPTION VARCHAR2 (2000) ,
CATEGORY_ID NUMBER (2) ,
WEIGHT_CLASS NUMBER (1) ,
WARRANTY_PERIOD INTERVAL YEAR TO MONTH ,
SUPPLIER_ID NUMBER (6) ,
PRODUCT_STATUS VARCHAR2 (20) ,
LIST_PRICE NUMBER (8,2) ,
MIN_PRICE NUMBER (8,2) ,
CATALOG_URL VARCHAR2 (50) ,
INVENTORY_LIST INVENTORY_LIST_TYP
) FINAL
;
/
CREATE OR REPLACE TYPE OE.PURCHASEORDER_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
REFERENCE VARCHAR2 (30) ,
ACTIONS ACTIONS_T ,
REJECTION REJECTION_T ,
REQUESTOR VARCHAR2 (128) ,
USERID VARCHAR2 (10) ,
COST_CENTER VARCHAR2 (4) ,
SHIPPING_INSTRUCTIONS SHIPPING_INSTRUCTIONS_T ,
SPECIAL_INSTRUCTIONS VARCHAR2 (2048) ,
LINEITEMS LINEITEMS_T
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.REJECTION_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
REJECTED_BY VARCHAR2 (10) ,
DATE_REJECTED DATE ,
REASON_REJECTED VARCHAR2 (2048)
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.SHIPPING_INSTRUCTIONS_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
SHIP_TO_NAME VARCHAR2 (20) ,
SHIP_TO_ADDRESS VARCHAR2 (256) ,
SHIP_TO_PHONE VARCHAR2 (24)
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.WAREHOUSE_TYP
AS OBJECT
(
WAREHOUSE_ID NUMBER (3) ,
WAREHOUSE_NAME VARCHAR2 (35) ,
LOCATION_ID NUMBER (4)
) FINAL
;
/
CREATE OR REPLACE DIRECTORY SS_OE_XMLDIR
AS 'c:\app\Reswanth\product\11.2.0\dbhome_1\demo\schema\order_entry\'
;
CREATE OR REPLACE DIRECTORY SUBDIR
AS 'c:\app\Reswanth\product\11.2.0\dbhome_1\demo\schema\order_entry\/2002/Sep'
;
CREATE TABLE OE.CATEGORIES_TAB
OF OE.CATEGORY_TYP
(
CONSTRAINT SYS_C0011038 PRIMARY KEY ( CATEGORY_ID )
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE USERS
LOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
CREATE TABLE OE.CUSTOMERS
(
CUSTOMER_ID NUMBER (6) NOT NULL ,
CUST_FIRST_NAME VARCHAR2 (20 BYTE)
CONSTRAINT CUST_FNAME_NN NOT NULL ,
CUST_LAST_NAME VARCHAR2 (20 BYTE)
CONSTRAINT CUST_LNAME_NN NOT NULL ,
CUST_ADDRESS OE.CUST_ADDRESS_TYP ,
PHONE_NUMBERS OE.PHONE_LIST_TYP ,
NLS_LANGUAGE VARCHAR2 (3 BYTE) ,
NLS_TERRITORY VARCHAR2 (30 BYTE) ,
CREDIT_LIMIT NUMBER (9,2) ,
CUST_EMAIL VARCHAR2 (30 BYTE) ,
ACCOUNT_MGR_ID NUMBER (6) ,
CUST_GEO_LOCATION MDSYS.SDO_GEOMETRY ,
DATE_OF_BIRTH DATE ,
MARITAL_STATUS VARCHAR2 (20 BYTE) ,
GENDER VARCHAR2 (1 BYTE) ,
INCOME_LEVEL VARCHAR2 (20 BYTE)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
COLUMN CUST_ADDRESS NOT SUBSTITUTABLE AT ALL LEVELS
COLUMN CUST_GEO_LOCATION NOT SUBSTITUTABLE AT ALL LEVELS
;
ALTER TABLE OE.CUSTOMERS
ADD CONSTRAINT CUSTOMER_ID_MIN
CHECK ( customer_id > 0)
;
ALTER TABLE OE.CUSTOMERS
ADD CONSTRAINT CUSTOMER_CREDIT_LIMIT_MAX
CHECK ( credit_limit <= 5000)
;
COMMENT ON TABLE OE.CUSTOMERS IS 'Contains customers data either entered by an employee or by the customer
him/herself over the Web.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUSTOMER_ID IS 'Primary key column.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUST_FIRST_NAME IS 'NOT NULL constraint.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUST_LAST_NAME IS 'NOT NULL constraint.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUST_ADDRESS IS 'Object column of type address_typ.'
;
COMMENT ON COLUMN OE.CUSTOMERS.PHONE_NUMBERS IS 'Varray column of type phone_list_typ'
;
COMMENT ON COLUMN OE.CUSTOMERS.CREDIT_LIMIT IS 'Check constraint.'
;
COMMENT ON COLUMN OE.CUSTOMERS.ACCOUNT_MGR_ID IS 'References hr.employees.employee_id.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUST_GEO_LOCATION IS 'SDO (spatial) column.'
;
CREATE INDEX OE.CUST_UPPER_NAME_IX ON OE.CUSTOMERS
(
UPPER("CUST_LAST_NAME"),UPPER("CUST_FIRST_NAME")
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.CUST_ACCOUNT_MANAGER_IX ON OE.CUSTOMERS
(
ACCOUNT_MGR_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.CUST_LNAME_IX ON OE.CUSTOMERS
(
CUST_LAST_NAME ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.CUST_EMAIL_IX ON OE.CUSTOMERS
(
CUST_EMAIL ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.CUSTOMERS
ADD CONSTRAINT CUSTOMERS_PK PRIMARY KEY ( CUSTOMER_ID ) ;
CREATE TABLE OE.INVENTORIES
(
PRODUCT_ID NUMBER (6) NOT NULL ,
WAREHOUSE_ID NUMBER (3)
CONSTRAINT INVENTORY_WAREHOUSE_ID_NN NOT NULL ,
QUANTITY_ON_HAND NUMBER (8)
CONSTRAINT INVENTORY_QOH_NN NOT NULL
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
COMMENT ON TABLE OE.INVENTORIES IS 'Tracks availability of products by product_it and warehouse_id.'
;
COMMENT ON COLUMN OE.INVENTORIES.PRODUCT_ID IS 'Part of concatenated primary key, references product_information.product_id.'
;
COMMENT ON COLUMN OE.INVENTORIES.WAREHOUSE_ID IS 'Part of concatenated primary key, references warehouses.warehouse_id.'
;
CREATE INDEX OE.INVENTORY_IX ON OE.INVENTORIES
(
WAREHOUSE_ID ASC ,
PRODUCT_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.INV_PRODUCT_IX ON OE.INVENTORIES
(
PRODUCT_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.INVENTORIES
ADD CONSTRAINT INVENTORY_PK PRIMARY KEY ( PRODUCT_ID, WAREHOUSE_ID ) ;
CREATE TABLE OE.ORDERS
(
ORDER_ID NUMBER (12) NOT NULL ,
ORDER_DATE TIMESTAMP WITH LOCAL TIME ZONE
CONSTRAINT ORDER_DATE_NN NOT NULL ,
ORDER_MODE VARCHAR2 (8 BYTE) ,
CUSTOMER_ID NUMBER (6)
CONSTRAINT ORDER_CUSTOMER_ID_NN NOT NULL ,
ORDER_STATUS NUMBER (2) ,
ORDER_TOTAL NUMBER (8,2) ,
SALES_REP_ID NUMBER (6) ,
PROMOTION_ID NUMBER (6)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
ALTER TABLE OE.ORDERS
ADD CONSTRAINT ORDER_MODE_LOV
CHECK ( ORDER_MODE IN ('direct', 'online'))
;
ALTER TABLE OE.ORDERS
ADD CONSTRAINT ORDER_TOTAL_MIN
CHECK ( order_total >= 0)
;
COMMENT ON TABLE OE.ORDERS IS 'Contains orders entered by a salesperson as well as over the Web.'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_ID IS 'PRIMARY KEY column.'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_DATE IS 'TIMESTAMP WITH LOCAL TIME ZONE column, NOT NULL constraint.'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_MODE IS 'CHECK constraint.'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_STATUS IS '0: Not fully entered, 1: Entered, 2: Canceled - bad credit, -
3: Canceled - by customer, 4: Shipped - whole order, -
5: Shipped - replacement items, 6: Shipped - backlog on items, -
7: Shipped - special delivery, 8: Shipped - billed, 9: Shipped - payment plan,-
10: Shipped - paid'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_TOTAL IS 'CHECK constraint.'
;
COMMENT ON COLUMN OE.ORDERS.SALES_REP_ID IS 'References hr.employees.employee_id.'
;
COMMENT ON COLUMN OE.ORDERS.PROMOTION_ID IS 'Sales promotion ID. Used in SH schema'
;
CREATE INDEX OE.ORD_SALES_REP_IX ON OE.ORDERS
(
SALES_REP_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.ORD_CUSTOMER_IX ON OE.ORDERS
(
CUSTOMER_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.ORD_ORDER_DATE_IX ON OE.ORDERS
(
ORDER_DATE ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.ORDERS
ADD CONSTRAINT ORDER_PK PRIMARY KEY ( ORDER_ID ) ;
CREATE TABLE OE.ORDER_ITEMS
(
ORDER_ID NUMBER (12) NOT NULL ,
LINE_ITEM_ID NUMBER (3) NOT NULL ,
PRODUCT_ID NUMBER (6) NOT NULL ,
UNIT_PRICE NUMBER (8,2) ,
QUANTITY NUMBER (8)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
COMMENT ON TABLE OE.ORDER_ITEMS IS 'Example of many-to-many resolution.'
;
COMMENT ON COLUMN OE.ORDER_ITEMS.ORDER_ID IS 'Part of concatenated primary key, references orders.order_id.'
;
COMMENT ON COLUMN OE.ORDER_ITEMS.LINE_ITEM_ID IS 'Part of concatenated primary key.'
;
COMMENT ON COLUMN OE.ORDER_ITEMS.PRODUCT_ID IS 'References product_information.product_id.'
;
CREATE UNIQUE INDEX OE.ORDER_ITEMS_UK ON OE.ORDER_ITEMS
(
ORDER_ID ASC ,
PRODUCT_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.ITEM_ORDER_IX ON OE.ORDER_ITEMS
(
ORDER_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.ITEM_PRODUCT_IX ON OE.ORDER_ITEMS
(
PRODUCT_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.ORDER_ITEMS
ADD CONSTRAINT ORDER_ITEMS_PK PRIMARY KEY ( ORDER_ID, LINE_ITEM_ID ) ;
CREATE TABLE OE.PRODUCT_DESCRIPTIONS
(
PRODUCT_ID NUMBER (6) NOT NULL ,
LANGUAGE_ID VARCHAR2 (3 BYTE) NOT NULL ,
TRANSLATED_NAME NVARCHAR2 (50)
CONSTRAINT TRANSLATED_NAME_NN NOT NULL ,
TRANSLATED_DESCRIPTION NVARCHAR2 (2000)
CONSTRAINT TRANSLATED_DESC_NN NOT NULL
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
COMMENT ON TABLE OE.PRODUCT_DESCRIPTIONS IS 'Non-industry-specific design, allows selection of NLS-setting-specific data
derived at runtime, for example using the products view.'
;
COMMENT ON COLUMN OE.PRODUCT_DESCRIPTIONS.PRODUCT_ID IS 'Primary key column.'
;
COMMENT ON COLUMN OE.PRODUCT_DESCRIPTIONS.LANGUAGE_ID IS 'Primary key column.'
;
CREATE UNIQUE INDEX OE.PRD_DESC_PK ON OE.PRODUCT_DESCRIPTIONS
(
PRODUCT_ID ASC ,
LANGUAGE_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.PROD_NAME_IX ON OE.PRODUCT_DESCRIPTIONS
(
TRANSLATED_NAME ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.PRODUCT_DESCRIPTIONS
ADD CONSTRAINT PRODUCT_DESCRIPTIONS_PK PRIMARY KEY ( PRODUCT_ID, LANGUAGE_ID )
USING INDEX OE.PRD_DESC_PK ;
CREATE TABLE OE.PRODUCT_INFORMATION
(
PRODUCT_ID NUMBER (6) NOT NULL ,
PRODUCT_NAME VARCHAR2 (50 BYTE) ,
PRODUCT_DESCRIPTION VARCHAR2 (2000 BYTE) ,
CATEGORY_ID NUMBER (2) ,
WEIGHT_CLASS NUMBER (1) ,
WARRANTY_PERIOD INTERVAL YEAR TO MONTH ,
SUPPLIER_ID NUMBER (6) ,
PRODUCT_STATUS VARCHAR2 (20 BYTE) ,
LIST_PRICE NUMBER (8,2) ,
MIN_PRICE NUMBER (8,2) ,
CATALOG_URL VARCHAR2 (50 BYTE)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
ALTER TABLE OE.PRODUCT_INFORMATION
ADD CONSTRAINT PRODUCT_STATUS_LOV
CHECK ( PRODUCT_STATUS IN ('obsolete', 'orderable', 'planned', 'under development'))
;
COMMENT ON TABLE OE.PRODUCT_INFORMATION IS 'Non-industry-specific data in various categories.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.PRODUCT_ID IS 'Primary key column.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.PRODUCT_DESCRIPTION IS 'Primary language description corresponding to translated_description in
oe.product_descriptions, added to provide non-NLS text columns for OC views
to accss.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.CATEGORY_ID IS 'Low cardinality column, can be used for bitmap index.
Schema SH uses it as foreign key'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.WEIGHT_CLASS IS 'Low cardinality column, can be used for bitmap index.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.WARRANTY_PERIOD IS 'INTERVAL YEAER TO MONTH column, low cardinality, can be used for bitmap
index.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.SUPPLIER_ID IS 'Offers possibility of extensions outside Common Schema.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.PRODUCT_STATUS IS 'Check constraint. Appropriate for complex rules, such as "All products in
status PRODUCTION must have at least one inventory entry." Also appropriate
for a trigger auditing status change.'
;
CREATE INDEX OE.PROD_SUPPLIER_IX ON OE.PRODUCT_INFORMATION
(
SUPPLIER_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.PRODUCT_INFORMATION
ADD CONSTRAINT PRODUCT_INFORMATION_PK PRIMARY KEY ( PRODUCT_ID ) ;
CREATE TABLE OE.PROMOTIONS
(
PROMO_ID NUMBER (6) NOT NULL ,
PROMO_NAME VARCHAR2 (20 BYTE)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
ALTER TABLE OE.PROMOTIONS
ADD CONSTRAINT PROMO_ID_PK PRIMARY KEY ( PROMO_ID ) ;
CREATE TABLE OE.PURCHASEORDER
OF SYS.XMLTYPE
XMLTYPE STORE AS OBJECT RELATIONAL
XMLSCHEMA "http://localhost:8080/source/schemas/poSource/xsd/purchaseOrder.xsd"
ELEMENT "PurchaseOrder"
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE USERS
LOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
CREATE UNIQUE INDEX OE.IX_LINEITEM_TABLE_MEMBERS ON OE.PURCHASEORDER
(
"XMLDATA"."LINEITEMS"."LINEITEM"
)
TABLESPACE USERS
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
LOGGING
;
CREATE UNIQUE INDEX OE.IX_ACTION_TABLE_MEMBERS ON OE.PURCHASEORDER
(
"XMLDATA"."ACTIONS"."ACTION"
)
TABLESPACE USERS
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
LOGGING
;
CREATE TABLE OE.WAREHOUSES
(
WAREHOUSE_ID NUMBER (3) NOT NULL ,
WAREHOUSE_SPEC XMLTYPE ,
WAREHOUSE_NAME VARCHAR2 (35 BYTE) ,
LOCATION_ID NUMBER (4) ,
WH_GEO_LOCATION MDSYS.SDO_GEOMETRY
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
XMLTYPE COLUMN WAREHOUSE_SPEC STORE AS CLOB
(
STORAGE (
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS UNLIMITED
FREELISTS 1
BUFFER_POOL DEFAULT
)
RETENTION
ENABLE STORAGE IN ROW
NOCACHE
)
COLUMN WH_GEO_LOCATION NOT SUBSTITUTABLE AT ALL LEVELS
;
COMMENT ON TABLE OE.WAREHOUSES IS 'Warehouse data unspecific to any industry.'
;
COMMENT ON COLUMN OE.WAREHOUSES.WAREHOUSE_ID IS 'Primary key column.'
;
COMMENT ON COLUMN OE.WAREHOUSES.WH_GEO_LOCATION IS 'Primary key column, references hr.locations.location_id.'
;
CREATE INDEX OE.WHS_LOCATION_IX ON OE.WAREHOUSES
(
LOCATION_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.WAREHOUSES
ADD CONSTRAINT WAREHOUSES_PK PRIMARY KEY ( WAREHOUSE_ID ) ;
ALTER TABLE OE.INVENTORIES
ADD CONSTRAINT INVENTORIES_PRODUCT_ID_FK FOREIGN KEY
(
PRODUCT_ID
)
REFERENCES OE.PRODUCT_INFORMATION
(
PRODUCT_ID
)
NOT DEFERRABLE
;
ALTER TABLE OE.INVENTORIES
ADD CONSTRAINT INVENTORIES_WAREHOUSES_FK FOREIGN KEY
(
WAREHOUSE_ID
)
REFERENCES OE.WAREHOUSES
(
WAREHOUSE_ID
)
NOT DEFERRABLE NOVALIDATE
;
ALTER TABLE OE.ORDERS
ADD CONSTRAINT ORDERS_CUSTOMER_ID_FK FOREIGN KEY
(
CUSTOMER_ID
)
REFERENCES OE.CUSTOMERS
(
CUSTOMER_ID
)
NOT DEFERRABLE
;
ALTER TABLE OE.ORDER_ITEMS
ADD CONSTRAINT ORDER_ITEMS_ORDER_ID_FK FOREIGN KEY
(
ORDER_ID
)
REFERENCES OE.ORDERS
(
ORDER_ID
)
ON DELETE CASCADE
NOT DEFERRABLE NOVALIDATE
;
ALTER TABLE OE.ORDER_ITEMS
ADD CONSTRAINT ORDER_ITEMS_PRODUCT_ID_FK FOREIGN KEY
(
PRODUCT_ID
)
REFERENCES OE.PRODUCT_INFORMATION
(
PRODUCT_ID
)
NOT DEFERRABLE
;
ALTER TABLE OE.PRODUCT_DESCRIPTIONS
ADD CONSTRAINT PD_PRODUCT_ID_FK FOREIGN KEY
(
PRODUCT_ID
)
REFERENCES OE.PRODUCT_INFORMATION
(
PRODUCT_ID
)
NOT DEFERRABLE
;
CREATE OR REPLACE VIEW OE.ACCOUNT_MANAGERS AS
SELECT c.account_mgr_id ACCT_MGR,
cr.region_id REGION,
c.cust_address.country_id COUNTRY,
c.cust_address.state_province PROVINCE,
count(*) NUM_CUSTOMERS
FROM customers c, countries cr
WHERE c.cust_address.country_id = cr.country_id
GROUP BY ROLLUP (c.account_mgr_id,
cr.region_id,
c.cust_address.country_id,
c.cust_address.state_province) ;
CREATE OR REPLACE VIEW OE.BOMBAY_INVENTORY AS
SELECT p.product_id
, p.product_name
, i.quantity_on_hand
FROM inventories i
, warehouses w
, products p
WHERE p.product_id = i.product_id
AND i.warehouse_id = w.warehouse_id
AND w.warehouse_name = 'Bombay' ;
CREATE OR REPLACE VIEW OE.CUSTOMERS_VIEW AS
SELECT
c.customer_id,
c.cust_first_name,
c.cust_last_name,
c.cust_address.street_address street_address,
c.cust_address.postal_code postal_code,
c.cust_address.city city,
c.cust_address.state_province state_province,
co.country_id,
co.country_name,
co.region_id,
c.nls_language,
c.nls_territory,
c.credit_limit,
c.cust_email,
substr(get_phone_number_f(1,phone_numbers),1,25) Primary_Phone_number,
substr(get_phone_number_f(2,phone_numbers),1,25) Phone_number_2,
substr(get_phone_number_f(3,phone_numbers),1,25) Phone_number_3,
substr(get_phone_number_f(4,phone_numbers),1,25) Phone_number_4,
substr(get_phone_number_f(5,phone_numbers),1,25) Phone_number_5,
c.account_mgr_id,
c.cust_geo_location.sdo_gtype location_gtype,
c.cust_geo_location.sdo_srid location_srid,
c.cust_geo_location.sdo_point.x location_x,
c.cust_geo_location.sdo_point.y location_y,
c.cust_geo_location.sdo_point.z location_z
FROM
countries co,
customers c
WHERE
c.cust_address.country_id = co.country_id(+) ;
CREATE OR REPLACE VIEW OE.OC_CUSTOMERS AS
OF OE.CUSTOMER_TYP WITH OBJECT IDENTIFIER ( customer_id ) SELECT c.customer_id, c.cust_first_name, c.cust_last_name, c.cust_address,
c.phone_numbers,c.nls_language,c.nls_territory,c.credit_limit,
c.cust_email,
CAST(MULTISET(SELECT o.order_id, o.order_mode,
MAKE_REF(oc_customers,o.customer_id),
o.order_status,
o.order_total,o.sales_rep_id,
CAST(MULTISET(SELECT l.order_id,l.line_item_id,
l.unit_price,l.quantity,
MAKE_REF(oc_product_information,
l.product_id)
FROM order_items l
WHERE o.order_id = l.order_id)
AS order_item_list_typ)
FROM orders o
WHERE c.customer_id = o.customer_id)
AS order_list_typ)
FROM customers c ;
CREATE OR REPLACE VIEW OE.OC_INVENTORIES AS
OF OE.INVENTORY_TYP WITH OBJECT IDENTIFIER ( product_id ) SELECT i.product_id,
warehouse_typ(w.warehouse_id, w.warehouse_name, w.location_id),
i.quantity_on_hand
FROM inventories i, warehouses w
WHERE i.warehouse_id=w.warehouse_id ;
CREATE OR REPLACE VIEW OE.OC_ORDERS AS
OF OE.ORDER_TYP WITH OBJECT IDENTIFIER ( order_id ) SELECT o.order_id, o.order_mode,MAKE_REF(oc_customers,o.customer_id),
o.order_status,o.order_total,o.sales_rep_id,
CAST(MULTISET(SELECT l.order_id,l.line_item_id,l.unit_price,l.quantity,
make_ref(oc_product_information,l.product_id)
FROM order_items l
WHERE o.order_id = l.order_id)
AS order_item_list_typ)
FROM orders o ;
CREATE OR REPLACE VIEW OE.OC_PRODUCT_INFORMATION AS
OF OE.PRODUCT_INFORMATION_TYP WITH OBJECT IDENTIFIER ( product_id ) SELECT p.product_id, p.product_name, p.product_description, p.category_id,
p.weight_class, p.warranty_period, p.supplier_id, p.product_status,
p.list_price, p.min_price, p.catalog_url,
CAST(MULTISET(SELECT i.product_id,i.warehouse,i.quantity_on_hand
FROM oc_inventories i
WHERE p.product_id=i.product_id)
AS inventory_list_typ)
FROM product_information p ;
CREATE OR REPLACE VIEW OE.ORDERS_VIEW AS
SELECT
order_id,
TO_DATE(TO_CHAR(order_date,'DD-MON-YY HH:MI:SS'),'DD-MON-YY HH:MI:SS') ORDER_DATE,
order_mode,
customer_id,
order_status,
order_total,
sales_rep_id,
promotion_id
FROM orders ;
CREATE OR REPLACE VIEW OE.PRODUCTS AS
SELECT i.product_id
, d.language_id
, CASE WHEN d.language_id IS NOT NULL
THEN d.translated_name
ELSE TRANSLATE(i.product_name USING NCHAR_CS)
END AS product_name
, i.category_id
, CASE WHEN d.language_id IS NOT NULL
THEN d.translated_description
ELSE TRANSLATE(i.product_description USING NCHAR_CS)
END AS product_description
, i.weight_class
, i.warranty_period
, i.supplier_id
, i.product_status
, i.list_price
, i.min_price
, i.catalog_url
FROM product_information i
, product_descriptions d
WHERE d.product_id (+) = i.product_id
AND d.language_id (+) = sys_context('USERENV','LANG') ;
CREATE OR REPLACE VIEW OE.PRODUCT_PRICES AS
SELECT category_id
, COUNT(*) as "#_OF_PRODUCTS"
, MIN(list_price) as low_price
, MAX(list_price) as high_price
FROM product_information
GROUP BY category_id ;
CREATE OR REPLACE VIEW OE.SYDNEY_INVENTORY AS
SELECT p.product_id
, p.product_name
, i.quantity_on_hand
FROM inventories i
, warehouses w
, products p
WHERE p.product_id = i.product_id
AND i.warehouse_id = w.warehouse_id
AND w.warehouse_name = 'Sydney' ;
CREATE OR REPLACE VIEW OE.TORONTO_INVENTORY AS
SELECT p.product_id
, p.product_name
, i.quantity_on_hand
FROM inventories i
, warehouses w
, products p
WHERE p.product_id = i.product_id
AND i.warehouse_id = w.warehouse_id
AND w.warehouse_name = 'Toronto' ;
CREATE OR REPLACE VIEW OE.OC_CORPORATE_CUSTOMERS AS
OF OE.CORPORATE_CUSTOMER_TYP UNDER OE.OC_CUSTOMERS SELECT c.customer_id, c.cust_first_name, c.cust_last_name,
c.cust_address, c.phone_numbers,c.nls_language,c.nls_territory,
c.credit_limit, c.cust_email,
CAST(MULTISET(SELECT o.order_id, o.order_mode,
MAKE_REF(oc_customers,o.customer_id),
o.order_status,
o.order_total,o.sales_rep_id,
CAST(MULTISET(SELECT l.order_id,l.line_item_id,
l.unit_price,l.quantity,
make_ref(oc_product_information,
l.product_id)
FROM order_items l
WHERE o.order_id = l.order_id)
AS order_item_list_typ)
FROM orders o
WHERE c.customer_id = o.customer_id)
AS order_list_typ), c.account_mgr_id
FROM customers c ;
CREATE SYNONYM OE.COUNTRIES
FOR HR.COUNTRIES
;
CREATE SYNONYM OE.DEPARTMENTS
FOR HR.DEPARTMENTS
;
CREATE SYNONYM OE.EMPLOYEES
FOR HR.EMPLOYEES
;
CREATE SYNONYM OE.JOBS
FOR HR.JOBS
;
CREATE SYNONYM OE.JOB_HISTORY
FOR HR.JOB_HISTORY
;
CREATE SYNONYM OE.LOCATIONS
FOR HR.LOCATIONS
;
CREATE OR REPLACE TRIGGER OE.INSERT_ORD_LINE
BEFORE INSERT ON OE.ORDER_ITEMS
FOR EACH ROW
DECLARE
new_line number;
BEGIN
SELECT (NVL(MAX(line_item_id),0)+1) INTO new_line
FROM order_items
WHERE order_id = :new.order_id;
:new.line_item_id := new_line;
END;
/
CREATE OR REPLACE TRIGGER OE.ORDERS_ITEMS_TRG
INSTEAD OF INSERT ON OE.OC_ORDERS
FOR EACH ROW
DECLARE
prod product_information_typ;
BEGIN
SELECT DEREF(:NEW.product_ref) INTO prod FROM DUAL;
INSERT INTO order_items VALUES (prod.product_id, :NEW.order_id,
:NEW.line_item_id, :NEW.unit_price,
:NEW.quantity);
END;
/
CREATE OR REPLACE TRIGGER OE.ORDERS_TRG
INSTEAD OF INSERT ON OE.OC_ORDERS
FOR EACH ROW
BEGIN
INSERT INTO ORDERS (order_id, order_mode, order_total,
sales_rep_id, order_status)
VALUES (:NEW.order_id, :NEW.order_mode,
:NEW.order_total, :NEW.sales_rep_id,
:NEW.order_status);
END;
/
CREATE OR REPLACE TRIGGER OE.PURCHASEORDER$xd
AFTER UPDATE OR DELETE ON OE.PURCHASEORDER
FOR EACH ROW
BEGIN IF (deleting) THEN xdb.xdb_pitrig_pkg.pitrig_del('OE','PURCHASEORDER', :old.sys_nc_oid$, '2FAF5A664A60406C81560AD888D12779' ); END IF; IF (updating) THEN xdb.xdb_pitrig_pkg.pitrig_upd('OE','PURCHASEORDER', :old.sys_nc_oid$, '2FAF5A664A60406C81560AD888D12779', user ); END IF; END;
/
CREATE OR REPLACE FUNCTION OE.GET_PHONE_NUMBER_F
(p_in INTEGER, p_phonelist phone_list_typ)
RETURN VARCHAR2 AS
TYPE phone_list IS VARRAY(5) OF VARCHAR2(25);
phone_out varchar2(25) := null;
v_size INTEGER;
BEGIN
IF p_phonelist.FIRST IS NULL OR
p_in > (p_phonelist.LAST + 1) - p_phonelist.FIRST THEN
RETURN phone_out;
ELSE
phone_out := p_phonelist(p_in);
RETURN phone_out;
END IF;
END;
/
-- Oracle SQL Developer Data Modeler Summary Report:
--
-- CREATE TABLE 10
-- CREATE INDEX 18
-- ALTER TABLE 19
-- CREATE VIEW 13
-- CREATE PACKAGE 0
-- CREATE PACKAGE BODY 0
-- CREATE PROCEDURE 0
-- CREATE FUNCTION 1
-- CREATE TRIGGER 4
-- ALTER TRIGGER 0
-- CREATE STRUCTURED TYPE 20
-- CREATE COLLECTION TYPE 8
-- CREATE CLUSTER 0
-- CREATE CONTEXT 0
-- CREATE DATABASE 0
-- CREATE DIMENSION 0
-- CREATE DIRECTORY 2
-- CREATE DISK GROUP 0
-- CREATE ROLE 0
-- CREATE ROLLBACK SEGMENT 0
-- CREATE SEQUENCE 0
-- CREATE MATERIALIZED VIEW 0
-- CREATE SYNONYM 6
-- CREATE TABLESPACE 0
-- CREATE USER 3
--
-- DROP TABLESPACE 0
-- DROP DATABASE 0
--
-- ERRORS 0
-- WARNINGS 0
-- at: 2013-04-25 21:30:09 IST
-- site: Oracle Database 11g
-- type: Oracle Database 11g
DROP VIEW OE.ACCOUNT_MANAGERS
;
DROP VIEW OE.BOMBAY_INVENTORY
;
DROP VIEW OE.CUSTOMERS_VIEW
;
DROP VIEW OE.OC_CORPORATE_CUSTOMERS
;
DROP VIEW OE.OC_CUSTOMERS
;
DROP VIEW OE.OC_INVENTORIES
;
DROP VIEW OE.OC_ORDERS
;
DROP VIEW OE.OC_PRODUCT_INFORMATION
;
DROP VIEW OE.ORDERS_VIEW
;
DROP VIEW OE.PRODUCTS
;
DROP VIEW OE.PRODUCT_PRICES
;
DROP VIEW OE.SYDNEY_INVENTORY
;
DROP VIEW OE.TORONTO_INVENTORY
;
DROP TABLE OE.CATEGORIES_TAB CASCADE CONSTRAINTS
;
DROP TABLE OE.CUSTOMERS CASCADE CONSTRAINTS
;
DROP TABLE OE.INVENTORIES CASCADE CONSTRAINTS
;
DROP TABLE OE.ORDERS CASCADE CONSTRAINTS
;
DROP TABLE OE.ORDER_ITEMS CASCADE CONSTRAINTS
;
DROP TABLE OE.PRODUCT_DESCRIPTIONS CASCADE CONSTRAINTS
;
DROP TABLE OE.PRODUCT_INFORMATION CASCADE CONSTRAINTS
;
DROP TABLE OE.PROMOTIONS CASCADE CONSTRAINTS
;
DROP TABLE OE.PURCHASEORDER CASCADE CONSTRAINTS
;
DROP TABLE OE.WAREHOUSES CASCADE CONSTRAINTS
;
CREATE USER HR
IDENTIFIED BY
ACCOUNT UNLOCK
;
CREATE USER OE
IDENTIFIED BY
ACCOUNT UNLOCK
;
CREATE USER SYS
IDENTIFIED BY
ACCOUNT UNLOCK
;
CREATE OR REPLACE TYPE OE.ACTIONS_T
;
/
CREATE OR REPLACE TYPE OE.ACTION_T
;
/
CREATE OR REPLACE TYPE OE.CATALOG_TYP
;
/
CREATE OR REPLACE TYPE OE.CATEGORY_TYP
;
/
CREATE OR REPLACE TYPE OE.COMPOSITE_CATEGORY_TYP
;
/
CREATE OR REPLACE TYPE OE.CORPORATE_CUSTOMER_TYP
;
/
CREATE OR REPLACE TYPE OE.CUSTOMER_TYP
;
/
CREATE OR REPLACE TYPE OE.CUST_ADDRESS_TYP
;
/
CREATE OR REPLACE TYPE OE.INVENTORY_TYP
;
/
CREATE OR REPLACE TYPE OE.LEAF_CATEGORY_TYP
;
/
CREATE OR REPLACE TYPE OE.LINEITEMS_T
;
/
CREATE OR REPLACE TYPE OE.LINEITEM_T
;
/
CREATE OR REPLACE TYPE OE.ORDER_ITEM_TYP
;
/
CREATE OR REPLACE TYPE OE.ORDER_TYP
;
/
CREATE OR REPLACE TYPE OE.PART_T
;
/
CREATE OR REPLACE TYPE OE.PRODUCT_INFORMATION_TYP
;
/
CREATE OR REPLACE TYPE OE.PURCHASEORDER_T
;
/
CREATE OR REPLACE TYPE OE.REJECTION_T
;
/
CREATE OR REPLACE TYPE OE.SHIPPING_INSTRUCTIONS_T
;
/
CREATE OR REPLACE TYPE OE.WAREHOUSE_TYP
;
/
CREATE OR REPLACE TYPE OE.ACTION_V
IS VARRAY ( 4 ) OF ACTION_T
;
/
CREATE OR REPLACE TYPE OE.INVENTORY_LIST_TYP
IS TABLE OF INVENTORY_TYP
;
/
CREATE OR REPLACE TYPE OE.LINEITEM_V
IS VARRAY ( 2147483647 ) OF LINEITEM_T
;
/
CREATE OR REPLACE TYPE OE.ORDER_ITEM_LIST_TYP
IS TABLE OF ORDER_ITEM_TYP
;
/
CREATE OR REPLACE TYPE OE.ORDER_LIST_TYP
IS TABLE OF ORDER_TYP
;
/
CREATE OR REPLACE TYPE OE.PHONE_LIST_TYP
IS VARRAY ( 5 ) OF VARCHAR2 (25)
;
/
CREATE OR REPLACE TYPE OE.PRODUCT_REF_LIST_TYP
IS TABLE OF NUMBER (6)
;
/
CREATE OR REPLACE TYPE OE.SUBCATEGORY_REF_LIST_TYP
IS TABLE OF REF CATEGORY_TYP
;
/
CREATE OR REPLACE TYPE OE.ACTIONS_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
ACTION ACTION_V
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.ACTION_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
ACTIONED_BY VARCHAR2 (10) ,
DATE_ACTIONED DATE
) FINAL
;
/
CREATE OR REPLACE TYPE OE.CATALOG_TYP
UNDER COMPOSITE_CATEGORY_TYP (
MEMBER FUNCTION GETCATALOGNAME
RETURN VARCHAR2 ,
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
) FINAL
;
/
CREATE OR REPLACE TYPE BODY OE.CATALOG_TYP
AS
MEMBER FUNCTION GETCATALOGNAME
RETURN VARCHAR2
AS
BEGIN
-- Return the category name from the supertype
RETURN self.category_name;
END;
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
AS
BEGIN
RETURN 'catalog_typ';
END;
END
;
/
CREATE OR REPLACE TYPE OE.CATEGORY_TYP
AS OBJECT
(
CATEGORY_NAME VARCHAR2 (50) ,
CATEGORY_DESCRIPTION VARCHAR2 (1000) ,
CATEGORY_ID NUMBER (2) ,
PARENT_CATEGORY_ID NUMBER (2) ,
NOT INSTANTIABLE MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
) NOT FINAL NOT INSTANTIABLE
;
/
CREATE OR REPLACE TYPE OE.COMPOSITE_CATEGORY_TYP
UNDER CATEGORY_TYP (
SUBCATEGORY_REF_LIST SUBCATEGORY_REF_LIST_TYP ,
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
) NOT FINAL
;
/
CREATE OR REPLACE TYPE BODY OE.COMPOSITE_CATEGORY_TYP
AS
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
AS
BEGIN
RETURN 'composite_category_typ';
END;
END
;
/
CREATE OR REPLACE TYPE OE.CORPORATE_CUSTOMER_TYP
UNDER CUSTOMER_TYP (
ACCOUNT_MGR_ID NUMBER (6)
) FINAL
;
/
CREATE OR REPLACE TYPE OE.CUSTOMER_TYP
AS OBJECT
(
CUSTOMER_ID NUMBER (6) ,
CUST_FIRST_NAME VARCHAR2 (20) ,
CUST_LAST_NAME VARCHAR2 (20) ,
CUST_ADDRESS CUST_ADDRESS_TYP ,
PHONE_NUMBERS PHONE_LIST_TYP ,
NLS_LANGUAGE VARCHAR2 (3) ,
NLS_TERRITORY VARCHAR2 (30) ,
CREDIT_LIMIT NUMBER (9,2) ,
CUST_EMAIL VARCHAR2 (30) ,
CUST_ORDERS ORDER_LIST_TYP
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.CUST_ADDRESS_TYP
AS OBJECT
(
STREET_ADDRESS VARCHAR2 (40) ,
POSTAL_CODE VARCHAR2 (10) ,
CITY VARCHAR2 (30) ,
STATE_PROVINCE VARCHAR2 (10) ,
COUNTRY_ID CHAR (2)
) FINAL
;
/
CREATE OR REPLACE TYPE OE.INVENTORY_TYP
AS OBJECT
(
PRODUCT_ID NUMBER (6) ,
WAREHOUSE WAREHOUSE_TYP ,
QUANTITY_ON_HAND NUMBER (8)
) FINAL
;
/
CREATE OR REPLACE TYPE OE.LEAF_CATEGORY_TYP
UNDER CATEGORY_TYP (
PRODUCT_REF_LIST PRODUCT_REF_LIST_TYP ,
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
) FINAL
;
/
CREATE OR REPLACE TYPE BODY OE.LEAF_CATEGORY_TYP
AS
OVERRIDING MEMBER FUNCTION CATEGORY_DESCRIBE
RETURN VARCHAR2
AS
BEGIN
RETURN 'leaf_category_typ';
END;
END
;
/
CREATE OR REPLACE TYPE OE.LINEITEMS_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
LINEITEM LINEITEM_V
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.LINEITEM_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
ITEMNUMBER NUMBER (38) ,
DESCRIPTION VARCHAR2 (256) ,
PART PART_T
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.ORDER_ITEM_TYP
AS OBJECT
(
ORDER_ID NUMBER (12) ,
LINE_ITEM_ID NUMBER (3) ,
UNIT_PRICE NUMBER (8,2) ,
QUANTITY NUMBER (8) ,
PRODUCT_REF REF PRODUCT_INFORMATION_TYP
) FINAL
;
/
CREATE OR REPLACE TYPE OE.ORDER_TYP
AS OBJECT
(
ORDER_ID NUMBER (12) ,
ORDER_MODE VARCHAR2 (8) ,
CUSTOMER_REF REF CUSTOMER_TYP ,
ORDER_STATUS NUMBER (2) ,
ORDER_TOTAL NUMBER (8,2) ,
SALES_REP_ID NUMBER (6) ,
ORDER_ITEM_LIST ORDER_ITEM_LIST_TYP
) FINAL
;
/
CREATE OR REPLACE TYPE OE.PART_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
PART_NUMBER VARCHAR2 (14) ,
QUANTITY NUMBER (12,4) ,
UNITPRICE NUMBER (14,2)
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.PRODUCT_INFORMATION_TYP
AS OBJECT
(
PRODUCT_ID NUMBER (6) ,
PRODUCT_NAME VARCHAR2 (50) ,
PRODUCT_DESCRIPTION VARCHAR2 (2000) ,
CATEGORY_ID NUMBER (2) ,
WEIGHT_CLASS NUMBER (1) ,
WARRANTY_PERIOD INTERVAL YEAR TO MONTH ,
SUPPLIER_ID NUMBER (6) ,
PRODUCT_STATUS VARCHAR2 (20) ,
LIST_PRICE NUMBER (8,2) ,
MIN_PRICE NUMBER (8,2) ,
CATALOG_URL VARCHAR2 (50) ,
INVENTORY_LIST INVENTORY_LIST_TYP
) FINAL
;
/
CREATE OR REPLACE TYPE OE.PURCHASEORDER_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
REFERENCE VARCHAR2 (30) ,
ACTIONS ACTIONS_T ,
REJECTION REJECTION_T ,
REQUESTOR VARCHAR2 (128) ,
USERID VARCHAR2 (10) ,
COST_CENTER VARCHAR2 (4) ,
SHIPPING_INSTRUCTIONS SHIPPING_INSTRUCTIONS_T ,
SPECIAL_INSTRUCTIONS VARCHAR2 (2048) ,
LINEITEMS LINEITEMS_T
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.REJECTION_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
REJECTED_BY VARCHAR2 (10) ,
DATE_REJECTED DATE ,
REASON_REJECTED VARCHAR2 (2048)
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.SHIPPING_INSTRUCTIONS_T
AS OBJECT
(
SYS_XDBPD$ UNKNOWN ,
SHIP_TO_NAME VARCHAR2 (20) ,
SHIP_TO_ADDRESS VARCHAR2 (256) ,
SHIP_TO_PHONE VARCHAR2 (24)
) NOT FINAL
;
/
CREATE OR REPLACE TYPE OE.WAREHOUSE_TYP
AS OBJECT
(
WAREHOUSE_ID NUMBER (3) ,
WAREHOUSE_NAME VARCHAR2 (35) ,
LOCATION_ID NUMBER (4)
) FINAL
;
/
CREATE OR REPLACE DIRECTORY SS_OE_XMLDIR
AS 'c:\app\Reswanth\product\11.2.0\dbhome_1\demo\schema\order_entry\'
;
CREATE OR REPLACE DIRECTORY SUBDIR
AS 'c:\app\Reswanth\product\11.2.0\dbhome_1\demo\schema\order_entry\/2002/Sep'
;
CREATE TABLE OE.CATEGORIES_TAB
OF OE.CATEGORY_TYP
(
CONSTRAINT SYS_C0011038 PRIMARY KEY ( CATEGORY_ID )
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE USERS
LOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
CREATE TABLE OE.CUSTOMERS
(
CUSTOMER_ID NUMBER (6) NOT NULL ,
CUST_FIRST_NAME VARCHAR2 (20 BYTE)
CONSTRAINT CUST_FNAME_NN NOT NULL ,
CUST_LAST_NAME VARCHAR2 (20 BYTE)
CONSTRAINT CUST_LNAME_NN NOT NULL ,
CUST_ADDRESS OE.CUST_ADDRESS_TYP ,
PHONE_NUMBERS OE.PHONE_LIST_TYP ,
NLS_LANGUAGE VARCHAR2 (3 BYTE) ,
NLS_TERRITORY VARCHAR2 (30 BYTE) ,
CREDIT_LIMIT NUMBER (9,2) ,
CUST_EMAIL VARCHAR2 (30 BYTE) ,
ACCOUNT_MGR_ID NUMBER (6) ,
CUST_GEO_LOCATION MDSYS.SDO_GEOMETRY ,
DATE_OF_BIRTH DATE ,
MARITAL_STATUS VARCHAR2 (20 BYTE) ,
GENDER VARCHAR2 (1 BYTE) ,
INCOME_LEVEL VARCHAR2 (20 BYTE)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
COLUMN CUST_ADDRESS NOT SUBSTITUTABLE AT ALL LEVELS
COLUMN CUST_GEO_LOCATION NOT SUBSTITUTABLE AT ALL LEVELS
;
ALTER TABLE OE.CUSTOMERS
ADD CONSTRAINT CUSTOMER_ID_MIN
CHECK ( customer_id > 0)
;
ALTER TABLE OE.CUSTOMERS
ADD CONSTRAINT CUSTOMER_CREDIT_LIMIT_MAX
CHECK ( credit_limit <= 5000)
;
COMMENT ON TABLE OE.CUSTOMERS IS 'Contains customers data either entered by an employee or by the customer
him/herself over the Web.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUSTOMER_ID IS 'Primary key column.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUST_FIRST_NAME IS 'NOT NULL constraint.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUST_LAST_NAME IS 'NOT NULL constraint.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUST_ADDRESS IS 'Object column of type address_typ.'
;
COMMENT ON COLUMN OE.CUSTOMERS.PHONE_NUMBERS IS 'Varray column of type phone_list_typ'
;
COMMENT ON COLUMN OE.CUSTOMERS.CREDIT_LIMIT IS 'Check constraint.'
;
COMMENT ON COLUMN OE.CUSTOMERS.ACCOUNT_MGR_ID IS 'References hr.employees.employee_id.'
;
COMMENT ON COLUMN OE.CUSTOMERS.CUST_GEO_LOCATION IS 'SDO (spatial) column.'
;
CREATE INDEX OE.CUST_UPPER_NAME_IX ON OE.CUSTOMERS
(
UPPER("CUST_LAST_NAME"),UPPER("CUST_FIRST_NAME")
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.CUST_ACCOUNT_MANAGER_IX ON OE.CUSTOMERS
(
ACCOUNT_MGR_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.CUST_LNAME_IX ON OE.CUSTOMERS
(
CUST_LAST_NAME ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.CUST_EMAIL_IX ON OE.CUSTOMERS
(
CUST_EMAIL ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.CUSTOMERS
ADD CONSTRAINT CUSTOMERS_PK PRIMARY KEY ( CUSTOMER_ID ) ;
CREATE TABLE OE.INVENTORIES
(
PRODUCT_ID NUMBER (6) NOT NULL ,
WAREHOUSE_ID NUMBER (3)
CONSTRAINT INVENTORY_WAREHOUSE_ID_NN NOT NULL ,
QUANTITY_ON_HAND NUMBER (8)
CONSTRAINT INVENTORY_QOH_NN NOT NULL
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
COMMENT ON TABLE OE.INVENTORIES IS 'Tracks availability of products by product_it and warehouse_id.'
;
COMMENT ON COLUMN OE.INVENTORIES.PRODUCT_ID IS 'Part of concatenated primary key, references product_information.product_id.'
;
COMMENT ON COLUMN OE.INVENTORIES.WAREHOUSE_ID IS 'Part of concatenated primary key, references warehouses.warehouse_id.'
;
CREATE INDEX OE.INVENTORY_IX ON OE.INVENTORIES
(
WAREHOUSE_ID ASC ,
PRODUCT_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.INV_PRODUCT_IX ON OE.INVENTORIES
(
PRODUCT_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.INVENTORIES
ADD CONSTRAINT INVENTORY_PK PRIMARY KEY ( PRODUCT_ID, WAREHOUSE_ID ) ;
CREATE TABLE OE.ORDERS
(
ORDER_ID NUMBER (12) NOT NULL ,
ORDER_DATE TIMESTAMP WITH LOCAL TIME ZONE
CONSTRAINT ORDER_DATE_NN NOT NULL ,
ORDER_MODE VARCHAR2 (8 BYTE) ,
CUSTOMER_ID NUMBER (6)
CONSTRAINT ORDER_CUSTOMER_ID_NN NOT NULL ,
ORDER_STATUS NUMBER (2) ,
ORDER_TOTAL NUMBER (8,2) ,
SALES_REP_ID NUMBER (6) ,
PROMOTION_ID NUMBER (6)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
ALTER TABLE OE.ORDERS
ADD CONSTRAINT ORDER_MODE_LOV
CHECK ( ORDER_MODE IN ('direct', 'online'))
;
ALTER TABLE OE.ORDERS
ADD CONSTRAINT ORDER_TOTAL_MIN
CHECK ( order_total >= 0)
;
COMMENT ON TABLE OE.ORDERS IS 'Contains orders entered by a salesperson as well as over the Web.'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_ID IS 'PRIMARY KEY column.'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_DATE IS 'TIMESTAMP WITH LOCAL TIME ZONE column, NOT NULL constraint.'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_MODE IS 'CHECK constraint.'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_STATUS IS '0: Not fully entered, 1: Entered, 2: Canceled - bad credit, -
3: Canceled - by customer, 4: Shipped - whole order, -
5: Shipped - replacement items, 6: Shipped - backlog on items, -
7: Shipped - special delivery, 8: Shipped - billed, 9: Shipped - payment plan,-
10: Shipped - paid'
;
COMMENT ON COLUMN OE.ORDERS.ORDER_TOTAL IS 'CHECK constraint.'
;
COMMENT ON COLUMN OE.ORDERS.SALES_REP_ID IS 'References hr.employees.employee_id.'
;
COMMENT ON COLUMN OE.ORDERS.PROMOTION_ID IS 'Sales promotion ID. Used in SH schema'
;
CREATE INDEX OE.ORD_SALES_REP_IX ON OE.ORDERS
(
SALES_REP_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.ORD_CUSTOMER_IX ON OE.ORDERS
(
CUSTOMER_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.ORD_ORDER_DATE_IX ON OE.ORDERS
(
ORDER_DATE ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.ORDERS
ADD CONSTRAINT ORDER_PK PRIMARY KEY ( ORDER_ID ) ;
CREATE TABLE OE.ORDER_ITEMS
(
ORDER_ID NUMBER (12) NOT NULL ,
LINE_ITEM_ID NUMBER (3) NOT NULL ,
PRODUCT_ID NUMBER (6) NOT NULL ,
UNIT_PRICE NUMBER (8,2) ,
QUANTITY NUMBER (8)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
COMMENT ON TABLE OE.ORDER_ITEMS IS 'Example of many-to-many resolution.'
;
COMMENT ON COLUMN OE.ORDER_ITEMS.ORDER_ID IS 'Part of concatenated primary key, references orders.order_id.'
;
COMMENT ON COLUMN OE.ORDER_ITEMS.LINE_ITEM_ID IS 'Part of concatenated primary key.'
;
COMMENT ON COLUMN OE.ORDER_ITEMS.PRODUCT_ID IS 'References product_information.product_id.'
;
CREATE UNIQUE INDEX OE.ORDER_ITEMS_UK ON OE.ORDER_ITEMS
(
ORDER_ID ASC ,
PRODUCT_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.ITEM_ORDER_IX ON OE.ORDER_ITEMS
(
ORDER_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.ITEM_PRODUCT_IX ON OE.ORDER_ITEMS
(
PRODUCT_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.ORDER_ITEMS
ADD CONSTRAINT ORDER_ITEMS_PK PRIMARY KEY ( ORDER_ID, LINE_ITEM_ID ) ;
CREATE TABLE OE.PRODUCT_DESCRIPTIONS
(
PRODUCT_ID NUMBER (6) NOT NULL ,
LANGUAGE_ID VARCHAR2 (3 BYTE) NOT NULL ,
TRANSLATED_NAME NVARCHAR2 (50)
CONSTRAINT TRANSLATED_NAME_NN NOT NULL ,
TRANSLATED_DESCRIPTION NVARCHAR2 (2000)
CONSTRAINT TRANSLATED_DESC_NN NOT NULL
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
COMMENT ON TABLE OE.PRODUCT_DESCRIPTIONS IS 'Non-industry-specific design, allows selection of NLS-setting-specific data
derived at runtime, for example using the products view.'
;
COMMENT ON COLUMN OE.PRODUCT_DESCRIPTIONS.PRODUCT_ID IS 'Primary key column.'
;
COMMENT ON COLUMN OE.PRODUCT_DESCRIPTIONS.LANGUAGE_ID IS 'Primary key column.'
;
CREATE UNIQUE INDEX OE.PRD_DESC_PK ON OE.PRODUCT_DESCRIPTIONS
(
PRODUCT_ID ASC ,
LANGUAGE_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
CREATE INDEX OE.PROD_NAME_IX ON OE.PRODUCT_DESCRIPTIONS
(
TRANSLATED_NAME ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.PRODUCT_DESCRIPTIONS
ADD CONSTRAINT PRODUCT_DESCRIPTIONS_PK PRIMARY KEY ( PRODUCT_ID, LANGUAGE_ID )
USING INDEX OE.PRD_DESC_PK ;
CREATE TABLE OE.PRODUCT_INFORMATION
(
PRODUCT_ID NUMBER (6) NOT NULL ,
PRODUCT_NAME VARCHAR2 (50 BYTE) ,
PRODUCT_DESCRIPTION VARCHAR2 (2000 BYTE) ,
CATEGORY_ID NUMBER (2) ,
WEIGHT_CLASS NUMBER (1) ,
WARRANTY_PERIOD INTERVAL YEAR TO MONTH ,
SUPPLIER_ID NUMBER (6) ,
PRODUCT_STATUS VARCHAR2 (20 BYTE) ,
LIST_PRICE NUMBER (8,2) ,
MIN_PRICE NUMBER (8,2) ,
CATALOG_URL VARCHAR2 (50 BYTE)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
ALTER TABLE OE.PRODUCT_INFORMATION
ADD CONSTRAINT PRODUCT_STATUS_LOV
CHECK ( PRODUCT_STATUS IN ('obsolete', 'orderable', 'planned', 'under development'))
;
COMMENT ON TABLE OE.PRODUCT_INFORMATION IS 'Non-industry-specific data in various categories.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.PRODUCT_ID IS 'Primary key column.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.PRODUCT_DESCRIPTION IS 'Primary language description corresponding to translated_description in
oe.product_descriptions, added to provide non-NLS text columns for OC views
to accss.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.CATEGORY_ID IS 'Low cardinality column, can be used for bitmap index.
Schema SH uses it as foreign key'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.WEIGHT_CLASS IS 'Low cardinality column, can be used for bitmap index.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.WARRANTY_PERIOD IS 'INTERVAL YEAER TO MONTH column, low cardinality, can be used for bitmap
index.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.SUPPLIER_ID IS 'Offers possibility of extensions outside Common Schema.'
;
COMMENT ON COLUMN OE.PRODUCT_INFORMATION.PRODUCT_STATUS IS 'Check constraint. Appropriate for complex rules, such as "All products in
status PRODUCTION must have at least one inventory entry." Also appropriate
for a trigger auditing status change.'
;
CREATE INDEX OE.PROD_SUPPLIER_IX ON OE.PRODUCT_INFORMATION
(
SUPPLIER_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.PRODUCT_INFORMATION
ADD CONSTRAINT PRODUCT_INFORMATION_PK PRIMARY KEY ( PRODUCT_ID ) ;
CREATE TABLE OE.PROMOTIONS
(
PROMO_ID NUMBER (6) NOT NULL ,
PROMO_NAME VARCHAR2 (20 BYTE)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
ALTER TABLE OE.PROMOTIONS
ADD CONSTRAINT PROMO_ID_PK PRIMARY KEY ( PROMO_ID ) ;
CREATE TABLE OE.PURCHASEORDER
OF SYS.XMLTYPE
XMLTYPE STORE AS OBJECT RELATIONAL
XMLSCHEMA "http://localhost:8080/source/schemas/poSource/xsd/purchaseOrder.xsd"
ELEMENT "PurchaseOrder"
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE USERS
LOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
;
CREATE UNIQUE INDEX OE.IX_LINEITEM_TABLE_MEMBERS ON OE.PURCHASEORDER
(
"XMLDATA"."LINEITEMS"."LINEITEM"
)
TABLESPACE USERS
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
LOGGING
;
CREATE UNIQUE INDEX OE.IX_ACTION_TABLE_MEMBERS ON OE.PURCHASEORDER
(
"XMLDATA"."ACTIONS"."ACTION"
)
TABLESPACE USERS
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
LOGGING
;
CREATE TABLE OE.WAREHOUSES
(
WAREHOUSE_ID NUMBER (3) NOT NULL ,
WAREHOUSE_SPEC XMLTYPE ,
WAREHOUSE_NAME VARCHAR2 (35 BYTE) ,
LOCATION_ID NUMBER (4) ,
WH_GEO_LOCATION MDSYS.SDO_GEOMETRY
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE EXAMPLE
NOLOGGING
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
XMLTYPE COLUMN WAREHOUSE_SPEC STORE AS CLOB
(
STORAGE (
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS UNLIMITED
FREELISTS 1
BUFFER_POOL DEFAULT
)
RETENTION
ENABLE STORAGE IN ROW
NOCACHE
)
COLUMN WH_GEO_LOCATION NOT SUBSTITUTABLE AT ALL LEVELS
;
COMMENT ON TABLE OE.WAREHOUSES IS 'Warehouse data unspecific to any industry.'
;
COMMENT ON COLUMN OE.WAREHOUSES.WAREHOUSE_ID IS 'Primary key column.'
;
COMMENT ON COLUMN OE.WAREHOUSES.WH_GEO_LOCATION IS 'Primary key column, references hr.locations.location_id.'
;
CREATE INDEX OE.WHS_LOCATION_IX ON OE.WAREHOUSES
(
LOCATION_ID ASC
)
TABLESPACE EXAMPLE
PCTFREE 10
MAXTRANS 255
STORAGE (
INITIAL 65536
NEXT 1048576
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
NOLOGGING
;
ALTER TABLE OE.WAREHOUSES
ADD CONSTRAINT WAREHOUSES_PK PRIMARY KEY ( WAREHOUSE_ID ) ;
ALTER TABLE OE.INVENTORIES
ADD CONSTRAINT INVENTORIES_PRODUCT_ID_FK FOREIGN KEY
(
PRODUCT_ID
)
REFERENCES OE.PRODUCT_INFORMATION
(
PRODUCT_ID
)
NOT DEFERRABLE
;
ALTER TABLE OE.INVENTORIES
ADD CONSTRAINT INVENTORIES_WAREHOUSES_FK FOREIGN KEY
(
WAREHOUSE_ID
)
REFERENCES OE.WAREHOUSES
(
WAREHOUSE_ID
)
NOT DEFERRABLE NOVALIDATE
;
ALTER TABLE OE.ORDERS
ADD CONSTRAINT ORDERS_CUSTOMER_ID_FK FOREIGN KEY
(
CUSTOMER_ID
)
REFERENCES OE.CUSTOMERS
(
CUSTOMER_ID
)
NOT DEFERRABLE
;
ALTER TABLE OE.ORDER_ITEMS
ADD CONSTRAINT ORDER_ITEMS_ORDER_ID_FK FOREIGN KEY
(
ORDER_ID
)
REFERENCES OE.ORDERS
(
ORDER_ID
)
ON DELETE CASCADE
NOT DEFERRABLE NOVALIDATE
;
ALTER TABLE OE.ORDER_ITEMS
ADD CONSTRAINT ORDER_ITEMS_PRODUCT_ID_FK FOREIGN KEY
(
PRODUCT_ID
)
REFERENCES OE.PRODUCT_INFORMATION
(
PRODUCT_ID
)
NOT DEFERRABLE
;
ALTER TABLE OE.PRODUCT_DESCRIPTIONS
ADD CONSTRAINT PD_PRODUCT_ID_FK FOREIGN KEY
(
PRODUCT_ID
)
REFERENCES OE.PRODUCT_INFORMATION
(
PRODUCT_ID
)
NOT DEFERRABLE
;
CREATE OR REPLACE VIEW OE.ACCOUNT_MANAGERS AS
SELECT c.account_mgr_id ACCT_MGR,
cr.region_id REGION,
c.cust_address.country_id COUNTRY,
c.cust_address.state_province PROVINCE,
count(*) NUM_CUSTOMERS
FROM customers c, countries cr
WHERE c.cust_address.country_id = cr.country_id
GROUP BY ROLLUP (c.account_mgr_id,
cr.region_id,
c.cust_address.country_id,
c.cust_address.state_province) ;
CREATE OR REPLACE VIEW OE.BOMBAY_INVENTORY AS
SELECT p.product_id
, p.product_name
, i.quantity_on_hand
FROM inventories i
, warehouses w
, products p
WHERE p.product_id = i.product_id
AND i.warehouse_id = w.warehouse_id
AND w.warehouse_name = 'Bombay' ;
CREATE OR REPLACE VIEW OE.CUSTOMERS_VIEW AS
SELECT
c.customer_id,
c.cust_first_name,
c.cust_last_name,
c.cust_address.street_address street_address,
c.cust_address.postal_code postal_code,
c.cust_address.city city,
c.cust_address.state_province state_province,
co.country_id,
co.country_name,
co.region_id,
c.nls_language,
c.nls_territory,
c.credit_limit,
c.cust_email,
substr(get_phone_number_f(1,phone_numbers),1,25) Primary_Phone_number,
substr(get_phone_number_f(2,phone_numbers),1,25) Phone_number_2,
substr(get_phone_number_f(3,phone_numbers),1,25) Phone_number_3,
substr(get_phone_number_f(4,phone_numbers),1,25) Phone_number_4,
substr(get_phone_number_f(5,phone_numbers),1,25) Phone_number_5,
c.account_mgr_id,
c.cust_geo_location.sdo_gtype location_gtype,
c.cust_geo_location.sdo_srid location_srid,
c.cust_geo_location.sdo_point.x location_x,
c.cust_geo_location.sdo_point.y location_y,
c.cust_geo_location.sdo_point.z location_z
FROM
countries co,
customers c
WHERE
c.cust_address.country_id = co.country_id(+) ;
CREATE OR REPLACE VIEW OE.OC_CUSTOMERS AS
OF OE.CUSTOMER_TYP WITH OBJECT IDENTIFIER ( customer_id ) SELECT c.customer_id, c.cust_first_name, c.cust_last_name, c.cust_address,
c.phone_numbers,c.nls_language,c.nls_territory,c.credit_limit,
c.cust_email,
CAST(MULTISET(SELECT o.order_id, o.order_mode,
MAKE_REF(oc_customers,o.customer_id),
o.order_status,
o.order_total,o.sales_rep_id,
CAST(MULTISET(SELECT l.order_id,l.line_item_id,
l.unit_price,l.quantity,
MAKE_REF(oc_product_information,
l.product_id)
FROM order_items l
WHERE o.order_id = l.order_id)
AS order_item_list_typ)
FROM orders o
WHERE c.customer_id = o.customer_id)
AS order_list_typ)
FROM customers c ;
CREATE OR REPLACE VIEW OE.OC_INVENTORIES AS
OF OE.INVENTORY_TYP WITH OBJECT IDENTIFIER ( product_id ) SELECT i.product_id,
warehouse_typ(w.warehouse_id, w.warehouse_name, w.location_id),
i.quantity_on_hand
FROM inventories i, warehouses w
WHERE i.warehouse_id=w.warehouse_id ;
CREATE OR REPLACE VIEW OE.OC_ORDERS AS
OF OE.ORDER_TYP WITH OBJECT IDENTIFIER ( order_id ) SELECT o.order_id, o.order_mode,MAKE_REF(oc_customers,o.customer_id),
o.order_status,o.order_total,o.sales_rep_id,
CAST(MULTISET(SELECT l.order_id,l.line_item_id,l.unit_price,l.quantity,
make_ref(oc_product_information,l.product_id)
FROM order_items l
WHERE o.order_id = l.order_id)
AS order_item_list_typ)
FROM orders o ;
CREATE OR REPLACE VIEW OE.OC_PRODUCT_INFORMATION AS
OF OE.PRODUCT_INFORMATION_TYP WITH OBJECT IDENTIFIER ( product_id ) SELECT p.product_id, p.product_name, p.product_description, p.category_id,
p.weight_class, p.warranty_period, p.supplier_id, p.product_status,
p.list_price, p.min_price, p.catalog_url,
CAST(MULTISET(SELECT i.product_id,i.warehouse,i.quantity_on_hand
FROM oc_inventories i
WHERE p.product_id=i.product_id)
AS inventory_list_typ)
FROM product_information p ;
CREATE OR REPLACE VIEW OE.ORDERS_VIEW AS
SELECT
order_id,
TO_DATE(TO_CHAR(order_date,'DD-MON-YY HH:MI:SS'),'DD-MON-YY HH:MI:SS') ORDER_DATE,
order_mode,
customer_id,
order_status,
order_total,
sales_rep_id,
promotion_id
FROM orders ;
CREATE OR REPLACE VIEW OE.PRODUCTS AS
SELECT i.product_id
, d.language_id
, CASE WHEN d.language_id IS NOT NULL
THEN d.translated_name
ELSE TRANSLATE(i.product_name USING NCHAR_CS)
END AS product_name
, i.category_id
, CASE WHEN d.language_id IS NOT NULL
THEN d.translated_description
ELSE TRANSLATE(i.product_description USING NCHAR_CS)
END AS product_description
, i.weight_class
, i.warranty_period
, i.supplier_id
, i.product_status
, i.list_price
, i.min_price
, i.catalog_url
FROM product_information i
, product_descriptions d
WHERE d.product_id (+) = i.product_id
AND d.language_id (+) = sys_context('USERENV','LANG') ;
CREATE OR REPLACE VIEW OE.PRODUCT_PRICES AS
SELECT category_id
, COUNT(*) as "#_OF_PRODUCTS"
, MIN(list_price) as low_price
, MAX(list_price) as high_price
FROM product_information
GROUP BY category_id ;
CREATE OR REPLACE VIEW OE.SYDNEY_INVENTORY AS
SELECT p.product_id
, p.product_name
, i.quantity_on_hand
FROM inventories i
, warehouses w
, products p
WHERE p.product_id = i.product_id
AND i.warehouse_id = w.warehouse_id
AND w.warehouse_name = 'Sydney' ;
CREATE OR REPLACE VIEW OE.TORONTO_INVENTORY AS
SELECT p.product_id
, p.product_name
, i.quantity_on_hand
FROM inventories i
, warehouses w
, products p
WHERE p.product_id = i.product_id
AND i.warehouse_id = w.warehouse_id
AND w.warehouse_name = 'Toronto' ;
CREATE OR REPLACE VIEW OE.OC_CORPORATE_CUSTOMERS AS
OF OE.CORPORATE_CUSTOMER_TYP UNDER OE.OC_CUSTOMERS SELECT c.customer_id, c.cust_first_name, c.cust_last_name,
c.cust_address, c.phone_numbers,c.nls_language,c.nls_territory,
c.credit_limit, c.cust_email,
CAST(MULTISET(SELECT o.order_id, o.order_mode,
MAKE_REF(oc_customers,o.customer_id),
o.order_status,
o.order_total,o.sales_rep_id,
CAST(MULTISET(SELECT l.order_id,l.line_item_id,
l.unit_price,l.quantity,
make_ref(oc_product_information,
l.product_id)
FROM order_items l
WHERE o.order_id = l.order_id)
AS order_item_list_typ)
FROM orders o
WHERE c.customer_id = o.customer_id)
AS order_list_typ), c.account_mgr_id
FROM customers c ;
CREATE SYNONYM OE.COUNTRIES
FOR HR.COUNTRIES
;
CREATE SYNONYM OE.DEPARTMENTS
FOR HR.DEPARTMENTS
;
CREATE SYNONYM OE.EMPLOYEES
FOR HR.EMPLOYEES
;
CREATE SYNONYM OE.JOBS
FOR HR.JOBS
;
CREATE SYNONYM OE.JOB_HISTORY
FOR HR.JOB_HISTORY
;
CREATE SYNONYM OE.LOCATIONS
FOR HR.LOCATIONS
;
CREATE OR REPLACE TRIGGER OE.INSERT_ORD_LINE
BEFORE INSERT ON OE.ORDER_ITEMS
FOR EACH ROW
DECLARE
new_line number;
BEGIN
SELECT (NVL(MAX(line_item_id),0)+1) INTO new_line
FROM order_items
WHERE order_id = :new.order_id;
:new.line_item_id := new_line;
END;
/
CREATE OR REPLACE TRIGGER OE.ORDERS_ITEMS_TRG
INSTEAD OF INSERT ON OE.OC_ORDERS
FOR EACH ROW
DECLARE
prod product_information_typ;
BEGIN
SELECT DEREF(:NEW.product_ref) INTO prod FROM DUAL;
INSERT INTO order_items VALUES (prod.product_id, :NEW.order_id,
:NEW.line_item_id, :NEW.unit_price,
:NEW.quantity);
END;
/
CREATE OR REPLACE TRIGGER OE.ORDERS_TRG
INSTEAD OF INSERT ON OE.OC_ORDERS
FOR EACH ROW
BEGIN
INSERT INTO ORDERS (order_id, order_mode, order_total,
sales_rep_id, order_status)
VALUES (:NEW.order_id, :NEW.order_mode,
:NEW.order_total, :NEW.sales_rep_id,
:NEW.order_status);
END;
/
CREATE OR REPLACE TRIGGER OE.PURCHASEORDER$xd
AFTER UPDATE OR DELETE ON OE.PURCHASEORDER
FOR EACH ROW
BEGIN IF (deleting) THEN xdb.xdb_pitrig_pkg.pitrig_del('OE','PURCHASEORDER', :old.sys_nc_oid$, '2FAF5A664A60406C81560AD888D12779' ); END IF; IF (updating) THEN xdb.xdb_pitrig_pkg.pitrig_upd('OE','PURCHASEORDER', :old.sys_nc_oid$, '2FAF5A664A60406C81560AD888D12779', user ); END IF; END;
/
CREATE OR REPLACE FUNCTION OE.GET_PHONE_NUMBER_F
(p_in INTEGER, p_phonelist phone_list_typ)
RETURN VARCHAR2 AS
TYPE phone_list IS VARRAY(5) OF VARCHAR2(25);
phone_out varchar2(25) := null;
v_size INTEGER;
BEGIN
IF p_phonelist.FIRST IS NULL OR
p_in > (p_phonelist.LAST + 1) - p_phonelist.FIRST THEN
RETURN phone_out;
ELSE
phone_out := p_phonelist(p_in);
RETURN phone_out;
END IF;
END;
/
-- Oracle SQL Developer Data Modeler Summary Report:
--
-- CREATE TABLE 10
-- CREATE INDEX 18
-- ALTER TABLE 19
-- CREATE VIEW 13
-- CREATE PACKAGE 0
-- CREATE PACKAGE BODY 0
-- CREATE PROCEDURE 0
-- CREATE FUNCTION 1
-- CREATE TRIGGER 4
-- ALTER TRIGGER 0
-- CREATE STRUCTURED TYPE 20
-- CREATE COLLECTION TYPE 8
-- CREATE CLUSTER 0
-- CREATE CONTEXT 0
-- CREATE DATABASE 0
-- CREATE DIMENSION 0
-- CREATE DIRECTORY 2
-- CREATE DISK GROUP 0
-- CREATE ROLE 0
-- CREATE ROLLBACK SEGMENT 0
-- CREATE SEQUENCE 0
-- CREATE MATERIALIZED VIEW 0
-- CREATE SYNONYM 6
-- CREATE TABLESPACE 0
-- CREATE USER 3
--
-- DROP TABLESPACE 0
-- DROP DATABASE 0
--
-- ERRORS 0
-- WARNINGS 0
No comments:
Post a Comment