я пытаюсь создать триггер следующим образом:Oracle12c: Триггер создается с ошибками компиляции (таблица или представление не существует)
CREATE OR REPLACE TRIGGER update_student
AFTER UPDATE OF school ON student FOR EACH ROW
BEGIN
UPDATE school SET num2=num2+1 WHERE school.id=(SELECT school FROM inserted);
END;
/
Но когда я выполняю код, он показывает Trigger created with compilation errors
, а затем я выполняю show errors;
он показывает мне следующее:
2/5 PL/SQL: SQL Statement ignored
2/71 PL/SQL: ORA-00942: table or view does not exist
Я думаю таблицу здесь означает школу, но я уверен, что таблица school
exists.Where проблема заключается Пожалуйста, дайте мне hand.Thanks?!
Я изменил код следующим образом:
CREATE OR REPLACE TRIGGER update_student
AFTER UPDATE OF school ON student FOR EACH ROW
BEGIN
UPDATE :new.school SET num2=num2+1 WHERE school.id=(SELECT :new.school FROM inserted);
END;
/
Но occurred.It новая ошибка показывает:
2/5 PL/SQL: SQL Statement ignored
2/24 PL/SQL: ORA-00903: invalid table name
Как я могу это исправить Спасибо!
Что это? '(SELECT school FROM вставлен)' - похоже, может быть, синтаксис SQL Server? Не будет работать в Oracle. Используйте ': new.school' вместо –
@TonyAndrews Спасибо! Но возникла новая проблема. Я добавил его к вопросу. Можете ли вы мне помочь? Большое вам спасибо! – dapao