Ошибка при компиляции триггера: PLS-00357: Table,View Or Sequence reference not allowed in this context
Есть такой код:
CREATE TABLE PODPISANT (
"Number" NUMBER NOT NULL,
scop_of_authority CHAR(1 char),
status CHAR(1 char),
...
);
create trigger basis_of_authority_tg before insert on PODPISANT
begin
if PODPISANT.status = '3' and basis_of_authority_of_org is null then
raise_application_error(-20001,'basis_of_authority_of_org для Статус=3. '||
'Указываются основания полномочий (доверия) организации');
end if;
end;
И после ккомпиляции тригера такая ошибка:
PLS-00357: Table,View Or Sequence reference 'PODPISANT.STATUS' not allowed in this context
Что не так с тригером?
Ответы (1 шт):
Автор решения: 0xdb
→ Ссылка
Обращаться к значениям колонки в теле триггера можно только в строчном триггере с переменными типа запись (rowtype): :OLD и :NEW:
create table podpisant (
"Number" number not null,
scop_of_authority char(1 char),
status char(1 char))
/
create or replace trigger basis_of_authority_tg
before insert on podpisant for each row
begin
if :new.status = '3' then
raise_application_error(-20001, 'basis_of_authority_of_org для Статус=3. '||
'Указываются основания полномочий (доверия) организации');
end if;
end;
/
insert into podpisant values (1, 'a', '3')
ORA-20001: basis_of_authority_of_org для Статус=3. Указываются основания полномочий (доверия) организации