1 Příloh-a(y)
[oracle] problem s FORALL
Ahojte.
Mam tabulku SLEEP_PROD_0610 v ktorej sa nachadzaju idcka zakaznikov a ich produktov. Pre kazdeho zakaznika kontrolujem ci nema vytvoreny este nejaky iny produkt z urcitej mnoziny idcok. Existuje viacero rieseni ako toto vytvorit (uz mam jedno historicke ktore funguje) ale snazim sa zlepsit performance tohoto riesenia.
Zacal som to robit pomocou types ale mam problem. V pripade ze tabulku pripravim tak ze iba jeden zakaznik vyhovuje updatu vo FORALL z prilozenej procky zbehne a oznaci mi tieto zaznamy. V pripade, ze ale pustim FORALL nad celou tabulkou (predtym naupdatujem samozrejme status tak aby sa nasli nejake zaznamy) tak mi neoznaci ziadny zaznam pritom pre jedneho zakaznika to funguje. Dal som si vypisovat aj obsah "pola" v pameti a nacitalo mi tam 23 zaznamov. Ked FORALL prepisem na klasicky FOR tak mi to tiez funguje spravne.
Vedel by mi niekto poradit s prilozenou procedurou? Mne to pripade ako nejaky bug oracle 8i.
Diky
Re: [oracle] problem s FORALL
Nevim, jak moc je to zavazny, ale kolem FORALL nemas LOOP a END LOOP; I kdyz v tom FOR je asi jenom kvuli vypisu. Nemam zkusenosti.
Re: [oracle] problem s FORALL
Za FORALL nemusi byt LOOP a END LOOP lebo za FORALL mozes dat iba jeden prikaz :) FORALL spracovava vsetky zaznamy naraz kdezdto klasicky FOR ide riadok po riadku.