Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PL/SQL promenljiva tipa cursor%rowtype

[es] :: Oracle :: PL/SQL promenljiva tipa cursor%rowtype

[ Pregleda: 2280 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.dynamic.isp.telekom.rs.



+64 Profil

icon PL/SQL promenljiva tipa cursor%rowtype06.07.2010. u 09:17 - pre 167 meseci
U sledecem primeru
Code:
declare
  cursor c is ...;
  r c%rowtype;
begin
  open c;
  loop
    fetch c into r;
    exit when c%notfound or (neki uslov);
  end loop;
end;

Interesuje me kakva je vrednost promenljive r po izlasku iz petlje?
I to u slucaju da se desilo c%notfound i da nije.
Pretpostavljam da ako nije, r zadrzava vrednosti poslednjeg sloga iz kursora.
 
Odgovor na temu

steve585
Stevan Stanić
Project Manager
Zagreb

Član broj: 131815
Poruke: 281
*.xnet.hr.



+1 Profil

icon Re: PL/SQL promenljiva tipa cursor%rowtype10.07.2010. u 16:43 - pre 167 meseci
pa valjda ima vrijednost c redova koji ubaceni u promjenjivu r
steve585
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: PL/SQL promenljiva tipa cursor%rowtype11.07.2010. u 00:22 - pre 167 meseci
Tek danas sam video ovo pitanje.

Jednostavno rečeno, vrednost promenljive r nakon što je tačan uslov c%notfound ne treba koristiti. Sad, ti imaš i neki OR uslov, pa ako je program iskočio zbog onoga što je iza OR, tada bi u r mogao da bude poslednji fečovan slog iz kurzora c.

Ako je zaista bilo tačno c%notfoud, tada bi vrednost varijable r mogla da bude ili vrednost poslednjeg fečovanog sloga, ili da sva polja budu null ili da bude potpuno besmislen podatak. Šta je zaista u r moglo bi da zavisi i od verzije baze na kojoj se procedura izvršava. Na primer, ono što sigurno znam je da se, recimo select u varijablu u slučaju kad select vrati TOO_MANY_ROWS promenio tako da je u verziji baze 9 tu bio prvi slog, dok je u 10 vrednost null.

Jedino što je 100% sigurno je da je: ako je c%notfound tačno, vrednost varijable r je NEDIFINISANA i ne treba da bude korišćena.
 
Odgovor na temu

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.dynamic.isp.telekom.rs.



+64 Profil

icon Re: PL/SQL promenljiva tipa cursor%rowtype12.07.2010. u 07:17 - pre 167 meseci
Hvala na odgovoru. Ja sam testirao ovo i rekao bih da r zadrzava vrednost bez obzira na %notfound (u mom radnom okruzenju).
Ali verovatno ipak treba biti oprezan s' obzirom na tu pricu sa verzijama baze.
Tako da ako zelim taj poslednji vraceni slog, morao bih da napravim novu promenljivu u kojoj cu drzati tekuce vrednosti iz kursora.
Inace i meni je nekako logicnije da TOO_MANY_ROWS vrati NULL u promenljivu :)
 
Odgovor na temu

[es] :: Oracle :: PL/SQL promenljiva tipa cursor%rowtype

[ Pregleda: 2280 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.