Tema: Re: oracle recursive trigger
Autorius: BigM
Data: 2010-08-12 15:48:36
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.