Простая ошибка триггера ?! PL / SQL: ORA-00933:

Я пытаюсь создать триггер, который будет вставлять значения в таблицу аудита для утверждения администратором. Триггер будет вставлять новые значения, которые добавляются в таблицу консультанта в эту таблицу аудита.

Я много раз переустанавливал триггер, но, похоже, не могу обойти ошибку компиляции! Я полагаю, это что-то маленькое?

DROP TABLE   MyAuditTable;
CREATE TABLE MyAuditTable (
audit_id INTEGER NOT NULL,
new_name VARCHAR2 (30),
new_postcode VARCHAR2 (20),
status     VARCHAR2 (15),
CONSTRAINT pk_MyAuditTable  PRIMARY KEY ( audit_id )
);


DROP sequence MySeq;
Create sequence MySeq MINVALUE 1 MAXVALUE 9999999 INCREMENT BY 1 START WITH 1;

drop trigger MyTrigger;
create trigger MyTrigger
after insert on my_consultant_table
for each row
begin
insert into MyAuditTable values (
MySeq.nextval, :new.con_name,
:new.con_postcode,
'Pending'
)
from my_consultant_table;
end;
/

ОШИБКА: PL / SQL: ORA-00933:

Таким образом, таблица аудита должна теперь иметь вновь введенные данные из таблицы консультанта, которая содержит атрибуты имени и почтового индекса. Другой триггер сработает, поэтому при изменении статуса эти изменения будут разрешены.

Благодарю вас!

-1

Решение

Линия

from my_consultant_table

Ненужно

Должно быть:

insert into MyAuditTable values (MySeq.nextval, :new.con_name, :new.con_postcode, 'Pending');
2

Другие решения

Это ORA-00933 обозначает синтаксическую ошибку в вашем объявлении триггера:

begin
insert into MyAuditTable values (
MySeq.nextval, :new.con_name,
:new.con_postcode,
'Pending'
)
from my_consultant_table;
end;

Трейлинг from my_consultant_table не имеет смысла, просто удалите его, и вы должны быть в порядке:

begin
insert into MyAuditTable values (
MySeq.nextval, :new.con_name,
:new.con_postcode,
'Pending'
);
end;
2

По вопросам рекламы [email protected]