Я хочу создать образец схемы Sales History (SH), предоставляемой Oracle.
Итак, я посетил сайт
Образцы моделей и скриптов:
https://www.oracle.com/technetwork/developer-tools/datamodeler/sample-models-scripts-224531.html
и загрузил скрипт SQL из
https://www.oracle.com/technetwork/developer-tools/datamodeler/shsql-167694.zip
Но я заметил, что это не может быть выполнено без ошибок. Сначала мне нужно было создать табличное пространство EXAMPLE, затем мне пришлось исправить порядок элементов PARTITION в скрипте и т. Д. Они упоминают некоторую предварительную работу, которую необходимо выполнить перед запуском скрипта?
В любом случае, после всех работ по исправлению ошибок у меня сейчас только 2 ошибки.
Первый:
Error starting at line : 2 290 in command -
CREATE DIMENSION PRODUCTS_DIM
LEVEL CATEGORY IS PRODUCTS.PROD_CATEGORY_ID
LEVEL SUBCATEGORY IS PRODUCTS.PROD_SUBCATEGORY_ID
LEVEL PRODUCT IS PRODUCTS.PROD_ID
LEVEL PROD_TOTAL IS PRODUCTS.PROD_TOTAL_ID
HIERARCHY PROD_ROLLUP (
PRODUCT CHILD OF
SUBCATEGORY CHILD OF
CATEGORY CHILD OF
PROD_TOTAL
)
ATTRIBUTE Attr12 LEVEL CATEGORY DETERMINES (
PROD_CATEGORY ,
PROD_CATEGORY_DESC
)
ATTRIBUTE Attr13 LEVEL SUBCATEGORY DETERMINES (
PROD_SUBCATEGORY ,
PROD_SUBCATEGORY_DESC
)
ATTRIBUTE Attr14 LEVEL PRODUCT DETERMINES (
PROD_NAME ,
PROD_MIN_PRICE ,
PROD_LIST_PRICE ,
PROD_STATUS ,
PROD_PACK_SIZE ,
PROD_UNIT_OF_MEASURE ,
PROD_WEIGHT_CLASS ,
PROD_DESC
)
ATTRIBUTE Attr15 LEVEL PROD_TOTAL DETERMINES
PROD_TOTAL
ATTRIBUTE Attr16 LEVEL CATEGORY DETERMINES
PROMO_CATEGORY
ATTRIBUTE Attr19 LEVEL SUBCATEGORY DETERMINES
PROMO_SUBCATEGORY
Error report -
ORA-00904: "PRODUCTS"."PROMO_SUBCATEGORY":
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Таблица АКЦИИ успешно создана
CREATE TABLE PROMOTIONS
(
PROMO_ID NUMBER (6) NOT NULL ,
PROMO_NAME VARCHAR2 (30 BYTE) NOT NULL ,
PROMO_SUBCATEGORY VARCHAR2 (30 BYTE) NOT NULL ,
PROMO_SUBCATEGORY_ID NUMBER NOT NULL ,
PROMO_CATEGORY VARCHAR2 (30 BYTE) NOT NULL ,
PROMO_CATEGORY_ID NUMBER NOT NULL ,
PROMO_COST NUMBER (10,2) NOT NULL ,
PROMO_BEGIN_DATE DATE NOT NULL ,
PROMO_END_DATE DATE NOT NULL ,
PROMO_TOTAL VARCHAR2 (15 BYTE) NOT NULL ,
PROMO_TOTAL_ID NUMBER NOT NULL
) LOGGING
MONITORING
;
И второй:
Error starting at line : 2 548 in command -
CREATE TABLE SALES_TRANSACTIONS_EXT
(
PROD_ID NUMBER (22) (22) (22) ,
CUST_ID NUMBER (22) (22) (22) ,
TIME_ID DATE (7) (7) (7) ,
CHANNEL_ID NUMBER (22) (22) (22) ,
PROMO_ID NUMBER (22) (22) (22) ,
QUANTITY_SOLD NUMBER (22) (22) (22) ,
AMOUNT_SOLD NUMBER (10, 2) (10, 2) (10, 2) ,
UNIT_COST NUMBER (10, 2) (10, 2) (10, 2) ,
UNIT_PRICE NUMBER (10, 2) (10, 2) (10, 2)
)
ORGANIZATION EXTERNAL
(
TYPE oracle_loader
ACCESS PARAMETERS
USING CLOB RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
TERRITORY AMERICAN
BADFILE log_file_dir:'ext_1v3.bad'
LOGFILE log_file_dir:'ext_1v3.log'
FIELDS TERMINATED BY "|" OPTIONALLY ENCLOSED BY ' ' LDRTRIM
( PROD_ID ,
CUST_ID ,
TIME_ID DATE(10) "YYYY-MM-DD",
CHANNEL_ID ,
PROMO_ID ,
QUANTITY_SOLD ,
AMOUNT_SOLD ,
UNIT_COST ,
UNIT_PRICE
)
LOCATION ( 'sale1v3.dat' )
)
REJECT LIMIT 100
Error report -
ORA-00907:
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
DbVisualizer подчеркнул вторую "(22)"
в строке " PROD_ID NUMBER (22) (22) (22) , "
, но я до сих пор не могу понять, где мне поставить правильную скобку.
Я не знаком с Oracle, специфичным для SQL.
Ниже приведен полный скрипт после всех моих исправлений
http://denis -aristov.ucoz.com / несортированный / SH.sql
И вывод полной ошибки:
http://denis -aristov.ucoz.com / несортированный / SH_errors.txt