триггеры оракула ora-04098 - PullRequest
       5

триггеры оракула ora-04098

1 голос
/ 10 марта 2012

Требуется некоторая базовая помощь, возможно, опечатка в коде.

У меня есть следующее:

create table scott.original(mystr varchar2(10))
insert into scott.original values('hi')
select * from scott.original

CREATE OR REPLACE TRIGGER scott.original_trigger
AFTER INSERT ON scott.original
FOR EACH ROW
BEGIN
    select 'deleting or updating' from dual
END;
/

insert into scott.original values('bye')

Там вставка 'пока' выдает ошибку ora-04098, я не могувижу проблему в oracle, предоставленную впервые, когда я пытаюсь создать триггер в oracle.

1 Ответ

4 голосов
/ 10 марта 2012

Любой оператор SELECT в блоке PL / SQL должен выбрать для данных INTO некоторую переменную.

CREATE OR REPLACE TRIGGER scott.original_trigger
AFTER INSERT ON scott.original
FOR EACH ROW
DECLARE
    l_variable VARCHAR2(100);
BEGIN
    select 'deleting or updating' 
      into l_variable
      from dual
END;
/

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...