2010-09-20 4 views
3

Je suis en train d'apporter quelques modifications à une base de données Oracle et d'avoir un script mis en place pour le faire. Le problème est quand il arrive à un point dans le script où je crée un déclencheur, il semble que le bloc Create Trigger ne se termine pas correctement, quand je regarde le déclencheur, il contient tout le code restant dans le script.Oracle Script problème - créer un déclencheur ne se termine pas

C'est ce que j'ai:

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

Qu'est-ce que je fais mal à mettre fin à la gâchette?

Répondre

13

Vous devez mettre fin à la PL/SQL en utilisant une barre oblique sur une nouvelle ligne, comme ceci:

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

Merci, apprentissage encore PL/SQL plupart de mon arrière-plan est avec MySQL et MS SQL SERVER – Matt

+1

Grande répondre! Je me suis gratté la tête au cours de ces 30 dernières minutes! Merci – RNJ

Questions connexes