Oracle 使用Vertabelo中生成的SQL代码创建表时缺少右括号错误

Oracle 使用Vertabelo中生成的SQL代码创建表时缺少右括号错误,oracle,Oracle,我想为我的学校项目创建一个数据库。创建某些表时没有出现错误,但当我想创建更复杂的表时,出现了以下错误: ORA-00907:缺少右括号 代码如下(表和属性的名称为罗马尼亚语): 一些反对意见: TEXT数据类型无效;我使用了VARCHAR2(100);可能更大,或CLOB 正确的顺序是默认0非空(非非空默认0) 虽然这不是一个错误,但您不必指定允许NULL值 实际的错误是DEFAULT子句位于notnull子句之前。这就是正确的语法: stare_cursa char DEFAULT 0

我想为我的学校项目创建一个数据库。创建某些表时没有出现错误,但当我想创建更复杂的表时,出现了以下错误:

ORA-00907:缺少右括号

代码如下(表和属性的名称为罗马尼亚语):

一些反对意见:

  • 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