Daryk elementariai.
Kokiam nors pakete (paketo specifikacijoje) apsirasai kintamaji, pvz.
<paketas>.v_insert_record boolean := false.
Tuomet pries irasant pirmaji irasa, darai <paketas>.v_insert_record := true;
Irasai irasa, o trigerio kodas daug maz toks:
create or replace trigger ... bla bla bla
begin
If <paketas>.v_insert_record then
<paketas>.v_insert_record := false;
insert into bla bla bla;
End if;
Exception
When OTHERS then
<paketas>.v_insert_record := false;
raise;
End;
Aplamai tai sakyciau nelabai vykes sprendimas taip i trigeri ikisti irasu
kurima...
"ledasl" <asai@pastas.lt> wrote in message
news:i40nl5$70m$1@trimpas.omnitel.net...
> Sveiki,
>
> ar imanoma ant oracle 10g trigeryje nustatyti kurio lygio rekursijoj jis
> yra?
> Problema, kad reikia ideti i lentele insert'o metu ideti dar viena irasa,
> tai darant per insert trigeri gaunasi gilus ciklas iki kol numirsta del
> per gilios rekursijos.
> Kadangi irasa reikia prideti tik viena, zinant rekursijos gyli galima
> sustabdyti ir toliau nebeiterpinteti, bet neaisku, kaip gauti kuriam dabar
> iskvietime tas trigeris yra.
> diseiblinti pacio trigerio neleidzia, nei is jo, nei is iskvieciamos
> proceduros, ar funkcijos.