Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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
Oracle SQL 00904。00000-“百分比”s:无效标识符“;创建表时_Oracle - Fatal编程技术网

Oracle SQL 00904。00000-“百分比”s:无效标识符“;创建表时

Oracle SQL 00904。00000-“百分比”s:无效标识符“;创建表时,oracle,Oracle,当我创建这样的表时: CREATE TABLE "Movie_list" ( "Movie_id" NUMBER(8) NOT NULL, "Company" VARCHAR2(30) NOT NULL, "Rating" DECIMAL(5,1) NOT NULL, "Storyline" VARCHAR2(255) NOT NULL, "Award_id"

当我创建这样的表时:

CREATE TABLE "Movie_list" (
  "Movie_id"             NUMBER(8) NOT NULL,
  "Company"              VARCHAR2(30) NOT NULL,
  "Rating"               DECIMAL(5,1) NOT NULL,
  "Storyline"            VARCHAR2(255) NOT NULL,
  "Award_id"             VARCHAR2(255) NOT NULL,
  "Cast_and_Crew_id"     VARCHAR2(255) NOT NULL,
  CONSTRAINT Movie_pk PRIMARY KEY (Movie_id),
  );
生成错误报告-

SQL Error: ORA-00904: : invalid identifier
00904. 00000 -  "%s: invalid identifier"
我看没什么问题,请帮忙

错误:

  • 用引号括起来的表名和列名
  • NUMBER和VARCHAR2不是有效的mysql类型
  • A位于约束规范的末尾,该约束规范无效

主要问题在于您的主键规范,其中

CONSTRAINT Movie_pk PRIMARY KEY (Movie_id),
但是,在表定义中,您引用了此字段的名称,即

"Movie_id"             NUMBER(8) NOT NULL,
由于该字段的名称(事实上,表中的每个字段以及表本身的名称)都是带引号的,因此数据库将这些名称存储为指定的混合大小写名称,并且由于Oracle将所有未带引号的标识符转换为大写字母,这意味着每次引用该表及其字段时,你必须引用它们。所以你的约束应该是

CONSTRAINT Movie_pk PRIMARY KEY ("Movie_id")
我的建议是,你不用引用“混合案例”名称。去掉引号,Oracle将在内部以大写字母存储名称。如果你想的话,你仍然可以使用混合格来引用它们,但你不必“每次使用时都引用”,这会变得非常陈旧,而且读起来非常糟糕。我建议您将表定义更改为

CREATE TABLE Movie_list (
  Movie_id             NUMBER(8) NOT NULL,
  Company              VARCHAR2(30) NOT NULL,
  Rating               DECIMAL(5,1) NOT NULL,
  Storyline            VARCHAR2(255) NOT NULL,
  Award_id             VARCHAR2(255) NOT NULL,
  Cast_and_Crew_id     VARCHAR2(255) NOT NULL,
  CONSTRAINT Movie_pk PRIMARY KEY (Movie_id)
  );

祝你好运。

请用RTFM!您不必在引号之间包装表名和列名。我正在Oracle SQL developer中运行它,错误报告-SQL错误:ORA-00907:缺少右括号00907。00000-“缺少右括号”*原因:*操作:然后使用oracle标记