Oracle 使用Vertabelo中生成的SQL代码创建表时缺少右括号错误
我想为我的学校项目创建一个数据库。创建某些表时没有出现错误,但当我想创建更复杂的表时,出现了以下错误: ORA-00907:缺少右括号 代码如下(表和属性的名称为罗马尼亚语): 一些反对意见:Oracle 使用Vertabelo中生成的SQL代码创建表时缺少右括号错误,oracle,Oracle,我想为我的学校项目创建一个数据库。创建某些表时没有出现错误,但当我想创建更复杂的表时,出现了以下错误: ORA-00907:缺少右括号 代码如下(表和属性的名称为罗马尼亚语): 一些反对意见: TEXT数据类型无效;我使用了VARCHAR2(100);可能更大,或CLOB 正确的顺序是默认0非空(非非空默认0) 虽然这不是一个错误,但您不必指定允许NULL值 实际的错误是DEFAULT子句位于notnull子句之前。这就是正确的语法: stare_cursa char DEFAULT 0
数据类型无效;我使用了TEXT
;可能更大,或VARCHAR2(100)
CLOB
- 正确的顺序是
(非默认0非空
)非空默认0
- 虽然这不是一个错误,但您不必指定允许
值NULL
实际的错误是DEFAULT子句位于notnull子句之前。这就是正确的语法:
stare_cursa char DEFAULT 0 NOT NULL
除此之外,您还需要将
文本
数据类型更改为类似varchar2(1000)
或您需要的任何长度。CHAR无精度是可以的,它默认为CHAR(1)
decimal
可以作为number
的子类型(比如int
)。确实如此;谢谢你,@APC。我修复了代码和注释。
SQL> CREATE TABLE curse(
2 id_cursa INT NOT NULL,
3 id_tura INT NULL,
4 moment_inceput_cursa TIMESTAMP NULL,
5 moment_sfarsit_cursa TIMESTAMP NULL,
6 adresa_initiala VARCHAR2(100)NULL,
7 gps_punct_start VARCHAR2(100)NULL,
8 adresa_destinatie VARCHAR2(100)NULL,
9 destinatie_gps VARCHAR2(100)NULL,
10 stare_cursa CHAR DEFAULT 0 NOT NULL,
11 modalitate_plata INT NULL,
12 pret DECIMAL,
13 CONSTRAINT curse_pk PRIMARY KEY(id_cursa)
14 );
Table created.
SQL>
stare_cursa char DEFAULT 0 NOT NULL