Oracle示例脚本中的错误

时间:2019-01-16 09:57:42

标签: oracle

我想创建一个由Oracle提供的示例架构销售历史(SH)。 所以我访问了网站

示例模型和脚本: 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:

表PROMOTIONS已成功创建

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/unsorted/SH.sql

以及完整的错误输出: http://denis-aristov.ucoz.com/unsorted/SH_errors.txt

0 个答案:

没有答案
相关问题