在Create Table命令SQL中缺少右括号

问题描述 投票:0回答:2

创建下表时,我收到错误消息

ORA-00907:缺少右括号。

create table CustomerOrder (
    CustomerOrderNumber NUMBER(15) CONSTRAINT Customer_Order_Number_pk PRIMARY KEY
    Customer_Number         NUMBER(7), CONSTRAINT Customer_Number_fk FOREIGN KEY,
    Order_Date              Date(6) CONSTRAINT Order_Date_not_null NOT NULL,
    Order_Status        VARCHAR2(20) CONSTRAINT Order_Status NOT NULL,
    Order_Total          NUMBER(20) CONSTRAINT Order_Total NOT NULL
);

客户编号错误: ORA-00907:缺少右括号

create table Work_Order (
    Work_Order_Number   NUMBER(20) CONSTRAINT Work_Order_Number_pk PRIMARY KEY,
    Product_Number      NUMBER(20),
    Work_Order_Date     Date(9) Work_Order_Date_not_null NOT NULL,
    Date_Required       Date(9) CONSTRAINT Date_Required_not_null NOT NULL,
    Date_Completed      Date(9) CONSTRAINT Date_Completed_not_null NOT NULL,
    Work_Status         VARCHAR2(100) CONSTRAINT Work_Status_not_null NOT NULL,
    Instruction         VARCHAR2(500) CONSTRAINT Instruction_not_null NOT NULL,
    CONSTRAINT Product_Number_fk FOREIGN KEY (Product_Number) REFERENCES Product(Product_Number)
);

Work_Order_Date的错误: ORA-00907:缺少右括号

我试着通过在最后放入外键的约束来修复它,但仍然不起作用。

create table Work_Order (
    Work_Order_Number   NUMBER(20) CONSTRAINT Work_Order_Number_pk PRIMARY KEY,
    Product_Number      NUMBER(20), CONSTRAINT Product_Number_fk FOREIGN KEY(Product_Number) REFERENCES Product(Product_Number),
    Work_Order_Date     Date(9) Work_Order_Date_not_null NOT NULL,
    Date_Required       Date(9) CONSTRAINT Date_Required_not_null NOT NULL,
    Date_Completed      Date(9) CONSTRAINT Date_Completed_not_null NOT NULL,
    Work_Status         VARCHAR2(100) CONSTRAINT Work_Status_not_null NOT NULL,
    Instruction         VARCHAR2(500) CONSTRAINT Instruction_not_null NOT NULL
);

Work_Order_Date的错误: ORA-00907:缺少右括号

为了创建这些表,我需要做些什么改变?我在哪里需要添加括号?

这是关于珠宝店数据库的一个课程。表包含有关业务的信息。

在SQL上运行时的预期结果:

表创建

sql oracle
2个回答
1
投票

看起来你需要在列定义之后和CONSTRAINTS之前删除逗号,除非它在最后。它应该是:

CustomerOrderNumber NUMBER(15) CONSTRAINT Customer_Order_Number_pk PRIMARY KEY Customer_Number NUMBER(7) CONSTRAINT

参考https://www.techonthenet.com/oracle/tables/create_table.php


0
投票

如果没有所有的总数并且不明确知道你的目标是什么,这里有一些样本可以帮助你开始

SQL> create table CustomerOrder (
  2      CustomerOrderNumber NUMBER(15) ,
  3      Customer_Number         NUMBER(7),
  4      Order_Date              Date NOT NULL,
  5      Order_Status        VARCHAR2(20) NOT NULL,
  6      Order_Total          NUMBER(20) NOT NULL,
  7      CONSTRAINT Customer_Order_Number_pk PRIMARY KEY ( CustomerOrderNumber )
  8  );

Table created.

SQL>
SQL> create table Work_Order (
  2      Work_Order_Number   NUMBER(20),
  3      Product_Number      NUMBER(20),
  4      Work_Order_Date     Date NOT NULL,
  5      Date_Required       Date CONSTRAINT Date_Required_not_null NOT NULL,
  6      Date_Completed      Date CONSTRAINT Date_Completed_not_null NOT NULL,
  7      Work_Status         VARCHAR2(100) CONSTRAINT Work_Status_not_null NOT NULL,
  8      Instruction         VARCHAR2(500) CONSTRAINT Instruction_not_null NOT NULL,
  9      CONSTRAINT Work_Order_Number_pk PRIMARY KEY ( Work_Order_Number )
 10  );

Table created.
© www.soinside.com 2019 - 2024. All rights reserved.