0

我正在尝试使用 SQL 脚本创建一个基本表 (Diak),它在第一行一直给我 ORA-00907。

但是,我创建了另一个具有基本相同结构的表(Targy),并且创建得很好。

create table Diak (
  Diak_id rowid constraint pk_diak primary key,
  Nev varchar2(100),
  Szul_datum date szul_70_tol constraint check (Szul_datum>= date'1970-1-1'),
  Cim long,
  Kod varchar2(100) constraint uk_diak_kod unique,
  Kezdes_eve number(4) constraint kezdes_88_tol check (Kezdes_eve>= 1988),
  );

create table Targy (
  Targy_id rowid constraint pk_targy primary key ,
  Nev long,
  Kod varchar2(100) constraint uk_targy_kod unique,
  Eloado varchar2(100) default 'Bármi Áron',
  Napok varchar2(100),
  Hely varchar2(100)
  );  

它说“错误从第 1 行开始:命令 [...] 00907. 00000 - “缺少右括号”“。由于 Targy 表很好,我不知道 Diak 表有什么问题。

4

2 回答 2

1
(Kezdes_eve>= 1988), 

去掉那个逗号,你应该很高兴。

于 2019-10-09T21:19:50.807 回答
1

您没有CHECK正确声明约束;只需卸下xxxxx CONSTRAINT零件,您就可以了:

create table Diak (
  Diak_id rowid constraint pk_diak primary key,
  Nev varchar2(100),
  Szul_datum date check (Szul_datum>= date'1970-1-1'),
  Cim long,
  Kod varchar2(100) constraint uk_diak_kod unique,
  Kezdes_eve number(4) check (Kezdes_eve>= 1988)
);

DB Fiddle 上的演示

注意:最后一列的声明末尾还有一个逗号,但我认为这是一个错字。

于 2019-10-09T21:24:34.443 回答