2010-09-20 106 views
3

我想对oracle数据库进行一些更改,并将脚本放在一起来执行此操作。问题是当它到达脚本中创建触发器的一个点时,它看起来像创建触发器块没有正确终止,当我查看触发器后,它包含脚本中剩余的所有代码。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 , 
... 

我在做什么错在结束了扳机?

回答

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

谢谢你,还在学习的PL/SQL最我的背景是与MySQL和MS SQL SERVER – Matt 2010-09-20 15:28:05

+1

大回答!过去30分钟,我一直在为此挠头!谢谢 – RNJ 2012-10-24 15:46:30