Re: PLS-00363: выражение KREP_ARK.ID не м.б. использовано как адресат

Klinok
Дата: 12.11.2008 07:02:35
hi all? создаю триигер, который после вставки записи должен срабатывать
т.е берет из секуенса последовательное значение и в поле ID вставляет

CREATE OR REPLACE TRIGGER "BLAG".TR_KREP_ARK AFTER INSERT ON "BLAG"."KREP_ARK"
 FOR EACH ROW
declare new  integer;
begin
 select BLAG.Sequence1.NEXTVAL into new from dual;
 BLAG.KREP_ARK.ID :=new;

end TR_KREP_ARK;
Результат:
Re: PLS-00363: выражение KREP_ARK.ID не м.б. использовано как адресат 
brainwashed
Дата: 12.11.2008 08:16:04
Может так попробовать?:)

...
declare
id integer;
begin
select BLAG.Sequence1.NEXTVAL
into id
from dual;
:new.ID := id;
...
Elic
Дата: 12.11.2008 08:33:43
Klinok
Дата: 12.11.2008 08:43:07
brainwashed
Может так попробовать?:)

...
declare
id integer;
begin
select BLAG.Sequence1.NEXTVAL
into id
from dual;
:new.ID := id;
...

пробовал, пишет:не возможно изменить значение NEW для этого типа триггера
Klinok
Дата: 12.11.2008 08:55:36
сделал вот так:
CREATE OR REPLACE TRIGGER "BLAG".TR_KREP_ARK AFTER INSERT ON "BLAG"."KREP_ARK"
FOR EACH ROW
begin
INSERT INTO "BLAG"."KREP_ARK" (id) VALUES (BLAG.BLAG.Sequence1.NEXTVAL);
end TR_KREP_ARK;
в результате при сохранении выдает ошибку
Elic
Дата: 12.11.2008 09:03:32
Klinok
пробовал, пишет:не возможно изменить значение NEW для этого типа триггера
Не откажи себе в любезности всё же почитать документацию.
brainwashed
Дата: 12.11.2008 10:41:14
ух... не заметил, что он у вас ещё и after...
поменяйте на before
pravednik
Дата: 12.11.2008 10:43:42
Klinok,

в факе есть вполне доступное объяснение, что такое мутация таблиц и как с ней бороться
Elic
Дата: 12.11.2008 10:47:56
pravednik
в факе есть вполне доступное объяснение, что такое мутация таблиц и как с ней бороться
А мозгами пораскинуть? Здесь это борьба с ветряными мельницами
pravednik
Дата: 12.11.2008 11:12:55
Elic
pravednik
в факе есть вполне доступное объяснение, что такое мутация таблиц и как с ней бороться
А мозгами пораскинуть? Здесь это борьба с ветряными мельницами

угу...согласен.