virsuj atrodo aprasiau, bet nesunku ir dar karta. programoj daramas iraso iterpimas i lentele A su laukais id=1, reverse=2. Reikia, kad toje pacioje lenteleje A atsirastu dar dar vienas irasas su id=2, reverse=1. Kadangi pakoreguoti issaugojimo pacioje programoje nelabai imanoma, tenka sita realizuoti duomenu bazeje. Kadangi trigeris iterpines i ta pacia lenta, ant kurios jis uzdetas, oraclas reikalauja, kad jam butu uzdeta pragma autonomous_transaction kas, jei gerai suprantau, reiskia, kad bus naudojama atskira tranzakcija tam trigeriui. trigeris after insert. Pasitikrinti savo iraso duomenis zinoma galima, nes jie jau iterpti, bet problema, kad kai ateina insert into A (id, reverse) values (1, 2) trigerio viduj daromas insert into A(id, reverse) values (2, 1), kuris vel iskviecia ta pati trigeri ir va sitame jau nebesimato, kad yra iterpta A(1, 2), bo ana tranzakcija dar nepakomitinta, o pakomitinti bus galima tik kai atliks ta papildoma insert'a. buvo mintis tikrinti kurio lygio rekursija trigeris yra pasiekes, bet kad niekaip neradau kaip gauti trigerio rekursijos lygi, gerai dar kad bent po 50 iskvietimo nutraukia. "all set" <allset@inbox.lt> wrote in message news:i41oeo$fou$1@trimpas.omnitel.net... > blem, kaip tai nesimato toje pacioje trans tavo insertintas irasas?Kiek > pamenu, nemato kitos transakcijos, bet saviskej tai matai? Ar jau as > pamirsau kazka. > > Tarkim: > lentoje 0 irasu; > start_trans; > insert irasas; > select count(*) = 1? > insert irasas; > commit; > > > O siaip tai gal vertetu tiesiog trigeryje per daug sitos logikos nesukti, > o iskviesti kokia paketo paprograme. > > Ir siaip tai tiesiog daryti patikrinima (nezinau ar trigerio lygyje > imanoma) selectini is lentos irasa ir jam ieskai atitikmens. Jeigu jau yra > atitikmuo,tai nieko nedarai, o jeigu nera - darai ta papildoma inserta. > Kad nebutu rekursiju. Cia tuo atveju, jeigu mano teorija apie > transakcijoje matomus jau suinsertintus irasus galioja. > > > Ir aprasyk situacija :) > > "ledasl" <asai@pastas.lt> wrote in message > news:i40vmk$i4k$1@trimpas.omnitel.net... >> neypatingas, is esmes, tai sukuriamas dar vienas toks pat irasas kai >> insert daromas programoj. o tikrinti, ar jau toks buvo insertintas >> neiseina, nes tranzakcijos ribose nesimato naujai iterptu duomenu. >> >> "tallman" <bill.tallman@gmailas.com> wrote in message >> news:i40v14$hb7$1@trimpas.omnitel.net... >>> jauciu tas tavo papildomas insertas kuri tu darai trigeryje yra koks >>> nors ipatingas duomenu prasme ? >>> tipo kurio nors lauko reiksme speciali ar pan ? >>> nu tai trigeryje darai patikrinima insertinti tik tada jeigu reiksmes >>> buvo tokios ir tokios.... >>> >>> >>> "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. >>> >>> >> > >