Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:ORA-00906:缺少左括号_Sql_Oracle - Fatal编程技术网

SQL:ORA-00906:缺少左括号

SQL:ORA-00906:缺少左括号,sql,oracle,Sql,Oracle,我在创建表时遇到问题: 这是我的指示: CREATE TABLE PRATICIEN ( num_pra INTEGER PRIMARY KEY, nom_pra VARCHAR(30) NOT NULL, FOREIGN KEY code_etage REFERENCES ETAGE(code_etage)); ORA-00906:缺少左括号00906。00000-“缺少左括号” ETAGE存在,创建此表时没有错误: CREATE TABLE ETAGE ( code_etage SMALL

我在创建表时遇到问题:

这是我的指示:

CREATE TABLE PRATICIEN (
num_pra INTEGER PRIMARY KEY,
nom_pra VARCHAR(30) NOT NULL,
FOREIGN KEY code_etage REFERENCES ETAGE(code_etage));
ORA-00906:缺少左括号00906。00000-“缺少左括号”

ETAGE
存在,创建此表时没有错误:

CREATE TABLE ETAGE (
code_etage SMALLINT PRIMARY KEY,
designation VARCHAR(30));

外键引用周围需要括号。这就是语法的定义方式

您还需要声明该列。
外键
是列的属性,而不是列定义:

CREATE TABLE PRATICIEN (
    num_pra INTEGER PRIMARY KEY,
    nom_pra VARCHAR(30) NOT NULL,
    code_etage SMALLINT,
    FOREIGN KEY (code_etage) REFERENCES ETAGE(code_etage)
);

是一个dbfiddle。

外键引用周围需要括号。这就是语法的定义方式

您还需要声明该列。
外键
是列的属性,而不是列定义:

CREATE TABLE PRATICIEN (
    num_pra INTEGER PRIMARY KEY,
    nom_pra VARCHAR(30) NOT NULL,
    code_etage SMALLINT,
    FOREIGN KEY (code_etage) REFERENCES ETAGE(code_etage)
);

是一个dbfiddle。

您只需删除
外键
关键字:

CREATE TABLE PRATICIEN (
    num_pra INTEGER PRIMARY KEY,
    nom_pra VARCHAR(30) NOT NULL,
    code_etage REFERENCES ETAGE(code_etage)  -- please note that type is inferred
);

您只需删除
外键
关键字:

CREATE TABLE PRATICIEN (
    num_pra INTEGER PRIMARY KEY,
    nom_pra VARCHAR(30) NOT NULL,
    code_etage REFERENCES ETAGE(code_etage)  -- please note that type is inferred
);

最简单的是

create table praticien
( num_pra    integer primary key
, nom_pra    varchar2(30) not null
, code_etage references etage );
但是,如果
ETAGE
具有多个唯一约束,则指定引用列可能被视为最佳做法:

create table praticien
( num_pra    integer primary key
, nom_pra    varchar2(30) not null
, code_etage references etage(code_etage) );
(顺便说一句,注意在Oracle中它是
varchar2
,而不是
varchar

最简单

create table praticien
( num_pra    integer primary key
, nom_pra    varchar2(30) not null
, code_etage references etage );
但是,如果
ETAGE
具有多个唯一约束,则指定引用列可能被视为最佳做法:

create table praticien
( num_pra    integer primary key
, nom_pra    varchar2(30) not null
, code_etage references etage(code_etage) );
(顺便说一下,注意在Oracle中是
varchar2
,而不是
varchar