在oracle中运行脚本文件后,我得到了

时间:2015-10-18 12:07:16

标签: sql oracle

所以这发生了:

enter image description here

当我尝试在提示符中输入另一个命令时,它只输出另一行并且没有运行命令?我如何解决这个问题以及导致它的原因?我想可能是我在文件中错过了一个;来结束一个命令,但我查看了我的文件,但事实并非如此。另外在我的实用工作表中,它教会我们编写触发器:

CREATE SEQUENCE "DEPTNO_SEQ" MINVALUE 10 MAXVALUE 999999999990
INCREMENT BY 10 START WITH 10;
CREATE OR REPLACE TRIGGER "BI_DEPT"
BEFORE INSERT ON "DEPT"
FOR EACH ROW
BEGIN
 SELECT "DEPTNO_SEQ".NEXTVAL INTO :NEW.DEPTNO FROM DUAL; END;
/ 

有一个触发器的示例通知最后的/字符?它有什么作用?我尝试使用和不使用它来加载我的脚本并发现同样的问题。另外我认为这是一个触发器问题,因为从提示的外观到创建序列但是没有创建在文件后面的两个触发器?我也研究了这个,但没有找到任何东西,所以这是我的最后一招。请告诉我原因以及如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

错误消息试图告诉您,您尝试修改的任何表格上已经存在外键约束,这些表格将ACTOR_ID字段与ACTOR.ACTOR_ID相关联。 Oracle不允许您创建重复约束。

SQL * Plus中使用/来执行刚刚输入的命令。在示例中,您显示/导致执行CREATE SEQUENCECREATE OR REPLACE TRIGGER语句。您通常会在每个命令后输入/以使其执行。因此,如果您尝试从ACTOR表中获取所有行,则可以执行类似

的操作
SELECT * FROM ACTOR;
/

/导致SELECT * FROM ACTOR语句被执行。

祝你好运。