Tema: Re: oracle recursive trigger (Bulk SQL solution)
Autorius: Jornada Del Muerto
Data: 2010-08-13 13:21:35
Siaip tai galima ir protinga inserta parasyt visiem absoliuciai duomenim kad sukurtu visus trukstamus dublius, tuo paciu jis nieko neinsertins jei antra pora irasu jau bus ir nesigaus jokios rekursijos aplamai.
MSSQL butu kazkas tokio (taip vadinamas insert is selecto - cia 1 uzklausa, tik turiu iproti kad butu sql suprantamesnis ji smulkyt i daug eiluciu):
Insert Into
A (id1, id2)
Select -- Toliau insertinama selectinamos reiksmes, kaip matai atbulai kad gaut antra irasa
id2, id1
From
A
Left Join
A A1 On A.Id2=A1.Id1 And A.Id1=A1.Id2 -- prijungiama atbulas poras
Where
A1.Id1 Is Null And A1.Id2 Is Null -- del to visas esamas poras nufiltruojam kad liktu tik neesamos
Stai ir easy sprendimas viena uzklausa, tik ORACLE SQL persirasyk ir viskas, pirma kart jei poru daug bus trigeris suveiks daug kartu, bet po pirmo jo suveikimo jau nebeliks ka insertint paprasciausia + tai sutvarkys visa lenta ir visada ja laikys tvarkinga.
"ledasl" <asai@pastas.lt> wrote in message news:i4320c$mmc$1@trimpas.omnitel.net...
>o kodel trigeryje irasu kurimas yra nevykes sprendimas?
>
> "BigM" <mindaugask_NOSPAM@centras.lt> wrote in message
> news:i40qj4$b0l$1@trimpas.omnitel.net...
>> 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.
>>
>