Oracle Script问题 - 创建触发器而不是终止

时间:2010-09-20 15:02:26

标签: sql oracle10g ddl

我正在尝试对oracle数据库进行一些更改,并将脚本组合在一起。问题是当它到达脚本中我创建触发器的点时,看起来创建触发器块没有正确终止,当我看到触发器后,它包含脚本中的所有剩余代码。

这就是我所拥有的:

CREATE OR REPLACE TRIGGER user_publish_log_trg
  BEFORE INSERT ON USER_PUBLISH_LOG
  FOR EACH ROW
    BEGIN
    SELECT user_publish_log_seq.NEXTVAL INTO :NEW.Id FROM dual;
    END user_publish_log_trg;

CREATE TABLE USER_APPROVAL_LOG
(
    Id number(10) NOT NULL ,
    CommodityId number(10) NOT NULL,
    QuarterEndDate DATE NOT NULL,
    ActionId int NOT NULL ,
...

在结束触发时我做错了什么?

1 个答案:

答案 0 :(得分:13)

您需要在新行上使用斜杠来终止PL / SQL,如下所示:

CREATE OR REPLACE TRIGGER user_publish_log_trg
  BEFORE INSERT ON USER_PUBLISH_LOG
  FOR EACH ROW
    BEGIN
    SELECT user_publish_log_seq.NEXTVAL INTO :NEW.Id FROM dual;
    END user_publish_log_trg;
/

CREATE TABLE USER_APPROVAL_LOG
(
    Id number(10) NOT NULL ,
    CommodityId number(10) NOT NULL,
    QuarterEndDate DATE NOT NULL,
    ActionId int NOT NULL ,
...