Sql 在Oracle中创建表时出错

Sql 在Oracle中创建表时出错,sql,oracle,Sql,Oracle,上面说缺少关键字…我需要帮助,真的很快有人出现了多个问题: 首先-在创建外键约束时,使用引用而不是引用 第二个-salary被定义为numeric(10,6)-这只留下小数点左侧四位数字的空间,因此10000的默认值不适合该字段,因为它在小数点左侧有五位数字。我将此列的定义更改为numeric(11,6) 第三-使用VARCHAR2而不是VARCHAR。Oracle已声明,在某个时刻,他们将更改VARCHAR的行为以符合ANSI定义,这意味着其行为将发生变化。在此之前(可能发生也可能永远不会发生

上面说缺少关键字…我需要帮助,真的很快有人

出现了多个问题:

首先-在创建外键约束时,使用
引用
而不是
引用

第二个-
salary
被定义为
numeric(10,6)
-这只留下小数点左侧四位数字的空间,因此
10000
的默认值不适合该字段,因为它在小数点左侧有五位数字。我将此列的定义更改为
numeric(11,6)

第三-使用
VARCHAR2
而不是
VARCHAR
。Oracle已声明,在某个时刻,他们将更改
VARCHAR
的行为以符合ANSI定义,这意味着其行为将发生变化。在此之前(可能发生也可能永远不会发生),请使用
VARCHAR2

综合以上所有因素,我们得出:

CREATE TABLE employee
  (
    empno         INT PRIMARY KEY,
    ename         VARCHAR(20)  NOT NULL,
    post          VARCHAR (10) NOT NULL,
    gender        CHAR(1),
    citizenshipno VARCHAR(10),
    salary        NUMERIC(10,6) DEFAULT 10000,
    deptno        INT,
    CONSTRAINT ck_gender CHECK(gender IN('M','F')),
    CONSTRAINT uc_citizenshipno UNIQUE(citizenshipno),
    CONSTRAINT fk_department FOREIGN KEY(deptno) REFERENCE department(deptno)
  )

祝您好运。

您的CREATE语句存在多个问题:


  • 它还说缺少右括号不要使用注释为问题添加更多信息,而是使用
    编辑
    按钮(在问题标签下方)直接将信息添加到问题中。谢谢。将引用更改为引用谢谢你救了我…我想问你一个问题,虽然我无法获得默认值,但为什么它必须是(11,6)如果某个东西被声明为
    NUMERIC(10,6)
    你是说你希望它能够容纳最多10位有效数字,其中有六个在小数点的右边,所以这个字段中可以包含的最大数字是9999.9999999,因此10000不适合。通过将字段大小更改为数字(11,6),可以存储的最大可能值变为99999.9999999,这样就可以在这样的字段中存储10000个。哦,我知道了,谢谢你,我的老师给了我一个错误的问题,然后让他发呆
    create table employee
     (empno int primary key,
      ename varchar2(20) not null,
      post varchar2(10) not null,
      gender char(1),
      citizenshipno varchar2(10),
      salary numeric(11,6) default 10000,
      deptno int,
      constraint ck_gender check(gender in('M','F')),
      constraint uc_citizenshipno unique(citizenshipno),
      constraint fk_department foreign key(deptno)
         references department(deptno));
    
    IS NOT NULL REFERENCE VARCHAR data type NUMERIC(10,6) DEFAULT 10000
    NUMERIC(11,6) DEFAULT 10000