2013-12-06 3 views
3

Я пытаюсь создать триггер в Oracle SQLPlus. Триггер имеет две таблицы: пользователей {id, name, status} предложений {id, title, price, userid, status};Создание триггера в Oracle

Я хотел бы, что, когда таблица пользователь обновил статус записи является изменение 2, что все предложения, которые сделал пользователь будет изменен на I (для неактивной)

CREATE OR REPLACE TRIGGER update_offering_status 
BEFORE UPDATE ON users 
WHEN (new.status = 2) 
FOR EACH ROW 
DECLARE 
Userid INTEGER; 
BEGIN 
USERID := :old.userid; 
    UPDATE offering 
    SET status = 'i' 
    WHERE userid = old.userid; 
END; 

Я получение ошибки ORA-04077: предложение WHEN не может использоваться с триггерами уровня таблицы. Но я не уверен, как это сделать без предложения?

ответ

4

Это происходит потому, что ваша статья WHEN находится в неправильном месте. Поместите его после FOR EACH ROW и все должно быть установлено:

CREATE OR REPLACE TRIGGER update_offering_status 
BEFORE UPDATE ON users 
FOR EACH ROW 
WHEN (new.status = 2) 
1

Вы должны быть в состоянии поставить его в IF & END IF вместо WHEN

Смежные вопросы