【问题标题】:Oracle Script problem - create trigger not terminatingOracle 脚本问题 - 创建触发器未终止
【发布时间】:2011-04-14 17:46:59
【问题描述】:

我正在尝试对 oracle 数据库进行一些更改,并编写了一个脚本来执行此操作。问题是当它到达我正在创建触发器的脚本中的某个点时,似乎 Create Trigger 块没有正确终止,当我之后查看触发器时,它包含脚本中的所有剩余代码。

这就是我所拥有的:

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 ,
...

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

【问题讨论】:

    标签: sql oracle10g ddl


    【解决方案1】:

    您需要通过在新行上使用斜杠来终止 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 ,
    ...
    

    【讨论】:

    • 谢谢,还在学习 PL/SQL 我的大部分背景是 MySQL 和 MS SQL SERVER
    • 很好的答案!在过去的 30 分钟里,我一直在为此挠头!谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    相关资源
    最近更新 更多