提问者:小点点

SQLDeveloper-运行语句出错,但运行脚本工作正常?


在SQLDeveloper软件中,有一个功能可以在脚本中运行语句,也可以在整个脚本中运行语句。

我的问题是,当我运行整个脚本时,我的SQL脚本工作正常,但当我尝试运行单个语句时,抛出一个ORA-00955:name已被现有对象使用的错误。

例如,我的脚本如下所示:

DROP TABLE "Movie" CASCADE CONSTRAINTS;
DROP TABLE "Critic" CASCADE CONSTRAINTS;
DROP TABLE "Review" CASCADE CONSTRAINTS;

CREATE TABLE "Critic" (
  "cID" int NOT NULL, /* Since a review cannot have no critics*/
  "CriticName" varchar(100),
  "PhoneNumber" varchar(10),
  PRIMARY KEY ("cID")
);

CREATE TABLE "Movie" (
  "mID" int,
  "Title" varchar(255),
  "ReleaseDate" DATE,
  "Rating" int,
  "RunningTime" INTEGER, /*To store the duration of the film in minutes*/
  "Director" varchar(100),
  "Actor(s)" int,
  PRIMARY KEY ("mID")
);

CREATE TABLE "Review" (
  "rID" int,
  "mID" int,
  FOREIGN KEY ("mID") REFERENCES "Movie"("mID"),
  "cID" int,
  FOREIGN KEY ("cID") REFERENCES "Critic"("cID"),
  "Rating" int,
  PRIMARY KEY ("rID")

为什么这个脚本作为一个整体运行良好,但如果我尝试只运行一条语句,它就会失败?

作为参考,我所说的功能在GUI中如下所示:


共1个答案

匿名用户

根据@Gordon Linoff的解释,我找到了答案。

在创建表之前,必须运行drop table命令。由于runstatement命令只运行一条语句,因此从不调用drop命令,从而导致错误。

要解决此问题,只需突出显示删除命令和创建命令,然后单击“运行语句”,即可解决问题。