Oracle SQL 脚本给出错误。我尝试创建 table

Oracle SQL script giving error. I try to create table

我在 Oracle 中有脚本 SQL:

CREATE TABLE "CONNECTIONS_DB"
("USER" VARCHAR2(4) NOT NULL,
 "TIME" DATE NOT NULL,
 "STATUS" BOOLEAN NOT NULL,
 CONSTRAINT "CONNECTIONS_DB_PK" PRIMARY KEY ("USER", "TIME", "STATUS"),
);

它 returns 下一个错误:

Error starting at line : 616 in command -
CREATE TABLE "CONNECTIONS_DB"
("USER" VARCHAR2(4) NOT NULL,
 "TIME" DATE NOT NULL,
 "STATUS" BOOLEAN NOT NULL,
 CONSTRAINT "CONNECTIONS_DB_PK" PRIMARY KEY ("USER", "TIME", "STATUS"),
)
Error report -
ORA-00904: : недопустимый идентификатор
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

如何解决这个问题?

您的代码有问题:

1) 在声明 CONSTRAINT

的行末尾有一个逗号

2)数据类型BOOLEAN在Oracle中不存在;您可以使用 NUMBER(1) 代替

考虑:

CREATE TABLE "CONNECTIONS_DB" (
    "USER" VARCHAR2(4) NOT NULL,
    "TIME" DATE NOT NULL,
    "STATUS" NUMBER(1) NOT NULL,
    CONSTRAINT CONNECTIONS_DB_PK PRIMARY KEY ("USER", "TIME", "STATUS")
);

旁注:USER 是 Oracle 中的保留字。我建议使用另一个标识符(如 USERNAME),并删除标识符周围的双引号。这将为您节省在所有进一步查询中双引号该列的工作:

CREATE TABLE CONNECTIONS_DB (
    USERNAME VARCHAR2(4) NOT NULL,
    TIME DATE NOT NULL,
    STATUS NUMBER(1) NOT NULL,
    CONSTRAINT CONNECTIONS_DB_PK PRIMARY KEY (USERNAME, TIME, STATUS)
);

Demo on DB Fiddle