Tema: Re: oracle recursive trigger
Autorius: ledasl
Data: 2010-08-12 15:56:21
sita varianta jau bandziau, bet veikia per daug nepatikimai, kad butu galima 
naudoti.

jei kurti irasus trigeryje negerai, tai kaip tada iterpimo metu sukurti dar 
viena toki pati irasa, toje pacioje lenteleje?

"BigM" <mindaugask_NOSPAM@centras.lt> wrote in message 
news:i40qj4$b0l$1@trimpas.omnitel.net...
> 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.
>