簡體   English   中英

在 Oracle PL/SQL 中創建觸發器時,如何解決“編譯錯誤成功”錯誤?

[英]How can I resolve “success with compilation error” error while creating trigger in Oracle PL/SQL?

我正在嘗試創建一個更新“事件”表而不是更新“v_event”視圖的觸發器。

CREATE OR REPLACE TRIGGER t_update_event
INSTEAD OF UPDATE ON v_event
BEGIN 
    UPDATE Event
    SET start_date = :NEW.start_date,
    end_date = :NEW.end_date,
    start_time = :NEW.start_time,
    end_time = :NEW.end_time,
    description = :NEW.description,
    WHERE event_id = :OLD.event_id
END

當我運行此腳本時,出現“編譯錯誤成功”錯誤。

在此處輸入圖像描述

我究竟做錯了什么?

注意你在做什么。

CREATE OR REPLACE TRIGGER t_update_event
INSTEAD OF UPDATE ON v_event
BEGIN 
    UPDATE Event
    SET start_date = :NEW.start_date,
    end_date = :NEW.end_date,
    start_time = :NEW.start_time,
    end_time = :NEW.end_time,
    description = :NEW.description,          --> superfluous comma
    WHERE event_id = :OLD.event_id           --> missing semi-colon
END                                          --> missing semi-colon

為了找出問題所在,要么

SQL> show err

看到錯誤后立即(如果您的工具支持;SQL*Plus 支持),或查詢user_errors

select * from user_errors where name = 'T_UPDATE_EVENT';

固定,它看起來像這樣:

SQL> create or replace trigger t_update_event
  2    instead of update on v_event
  3  begin
  4      update event set
  5        start_date   = :new.start_date,
  6        end_date     = :new.end_date,
  7        start_time   = :new.start_time,
  8        end_time     = :new.end_time,
  9        description  = :new.description
 10      where event_id = :old.event_id;
 11  end;
 12  /

Trigger created.

SQL>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM