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)
);
我在 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)
);