Bạn phải sử dụng :NEW
và :OLD
mỗi khi bạn tham khảo các cột được chèn.
CREATE OR REPLACE TRIGGER ManageCall
AFTER INSERT
ON STATE_CHANGE
FOR EACH ROW
DECLARE
x_coord NUMBER;
y_coord NUMBER;
BEGIN
IF :NEW.ChangeType='C' THEN
SELECT X, Y INTO x_coord, y_coord
FROM TELEPHONE t
WHERE t.PHONENO = :NEW.PHONENO;
END IF;
END;
Khi bạn đang sử dụng WHEN
-vì bạn không thể sử dụng MỚI làm biến liên kết như đã nêu tại đây
(tìm kiếm 'mệnh đề WHEN'):
Vì vậy, những điều sau đây cũng sẽ hoạt động:
CREATE OR REPLACE TRIGGER ManageCall
AFTER INSERT
ON STATE_CHANGE
FOR EACH ROW
WHEN (NEW.ChangeType='C')
DECLARE
x_coord NUMBER;
y_coord NUMBER;
BEGIN
SELECT X, Y INTO x_coord, y_coord
FROM TELEPHONE
WHERE PHONENO = :NEW.PHONENO;
END;