2010-09-20 33 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