【问题标题】:"ORA-00922: missing or invalid option" SQL create table error“ORA-00922:缺少或无效选项”SQL 创建表错误
【发布时间】:2015-11-06 06:34:20
【问题描述】:
    CREATE TABLE sales_invoice -- missing or invalid option
        (sales_invoice_no                 NUMBER(6) NOT NULL
            CONSTRAINT sales_invoice_no_pk PRIMARY KEY
       , cust_id                         NUMBER(6) NOT NULL
       ,   CONSTRAINT sales_cust_invoice_fk FOREIGN KEY (cust_id)
            REFERENCES customer(cust_id))   
       , art_id                           NUMBER(6) NOT NULL
       ,   CONSTRAINT art_invoice_fk FOREIGN KEY (art_id)
            REFERENCES art_sale(art_id)
       , sales_emp_id                    NUMBER(6) NOT NULL
       ,    CONSTRAINT sales_invoice_emp_fk (sales_emp_id)
            REFERENCES sales_emp(emp_id)
       , manager_emp_id                   NUMBER(6)
       ,   CONSTRAINT manager_invoice_emp_fk (manager_emp_id) 
            REFERENCES manager_emp(emp_id)
       , sales_invoice_amount             NUMBER (10)
            CONSTRAINT sales_amount_check CHECK (sales_invoice_amount > 0 ));

当我尝试运行此程序时出现此错误。我正在尝试创建一个从其他几个表中提取的表并将其打印为销售发票。提前致谢。

【问题讨论】:

  • 我发现了一个问题 - 我在 sales_emp_id 和 manager_emp_id 之前缺少 FOREIGN KEY。但我添加了这些,但仍然丢失或无效 iotion
  • 很遗憾,我们真的无法帮助您进行远程调试。而且您还没有提供足够的信息...

标签: sql oracle


【解决方案1】:

我认为,您的格式更难发现错误。我重新格式化了您的代码,并在您的“sales_cust_invoice_fk”约束之后发现了一个额外的 ")"。这是重新格式化的代码:

 CREATE TABLE sales_invoice (
sales_invoice_no    NUMBER(6) NOT NULL CONSTRAINT sales_invoice_no_pk PRIMARY KEY
cust_id         NUMBER(6) NOT NULL,
art_id          NUMBER(6) NOT NULL,
sales_emp_id        NUMBER(6) NOT NULL,
manager_emp_id      NUMBER(6),
sales_invoice_amount    NUMBER (10),
CONSTRAINT sales_cust_invoice_fk FOREIGN KEY (cust_id) REFERENCES customer(cust_id), 
CONSTRAINT art_invoice_fk FOREIGN KEY (art_id) REFERENCES art_sale(art_id),
CONSTRAINT sales_invoice_emp_fk (sales_emp_id) REFERENCES sales_emp(emp_id),
CONSTRAINT manager_invoice_emp_fk (manager_emp_id) REFERENCES manager_emp(emp_id),
CONSTRAINT sales_amount_check CHECK (sales_invoice_amount > 0 )
);

【讨论】:

    【解决方案2】:

    这是查询

    CREATE TABLE sales_invoice 
            (sales_invoice_no                 NUMBER(6) NOT NULL
                CONSTRAINT sales_invoice_no_pk PRIMARY KEY
           , cust_id                         NUMBER(6) NOT NULL
           ,   CONSTRAINT sales_cust_invoice_fk FOREIGN KEY (cust_id)
                REFERENCES customer(cust_id)   
           , art_id                           NUMBER(6) NOT NULL
           ,   CONSTRAINT art_invoice_fk FOREIGN KEY (art_id)
                REFERENCES art_sale(art_id)
           , sales_emp_id                    NUMBER(6) NOT NULL
           ,    CONSTRAINT sales_invoice_emp_fk FOREIGN KEY (sales_emp_id)
                REFERENCES sales_emp(emp_id)
           , manager_emp_id                   NUMBER(6)
           ,   CONSTRAINT manager_invoice_emp_fk FOREIGN KEY (manager_emp_id) 
                REFERENCES manager_emp(emp_id)
           , sales_invoice_amount             NUMBER (10)
                CONSTRAINT sales_amount_check CHECK (sales_invoice_amount > 0 ));
    

    【讨论】:

      猜你喜欢
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多