это мой код:ошибка запуска компиляции (вставка)
create or replace trigger th
after insert on stock
for each row
declare
sqty number;
rl number;
isb number;
rq number;
begin
set sqty=(select stockqty from inserted);
set rl=(select reorderlevel from inserted);
set isb=(select isbn from inserted);
set rq=(select reorderquantity from inserted);
go
if sqty> rl then
delete from stock where isb=isbn;
insert into stock values(isb,sqty,rl,rq);
end if;
end;
вопросы:
1.if после запуска вставки используется это означает, что все это происходит после того, как вставить прямо, что если я хочу не вставлять конкретные данные, что я делаю? Я имею в виду, например, если вес < 15 не помещайте это.
2.if Я вставил несколько данных, как их получить? Запускается ли триггер для каждой вставки? (Если это триггер вставки).
3.this дает мне ошибку компиляции, я просто не могу найти ошибку, даже используя курсор, дает мне ошибку.
create or replace trigger t1
after insert on stock for each row
declare
cursor cl is select isbn,stockqty,reorderlevel,reorderquantity from stock where isbn>0;
begin
for c2 in c1 loop
if c2.stockqty>c2.reorderlevel then
delete from stock where isbn=c2.isbn;
insert into stock values(c2.isbn,c2.reorderquantity,c2.reorderlevel,c2.reorderquantity);
end if;
end loop;
end;
Btw Я использую SQL Developer, weidly многие из моего триггера не выполняется, но они выполняются в Oracle 8i.
Oracle триггеры должны быть записаны в PL/SQL, в котором нет команд «set» и «go», которые вы пытаетесь использовать. –