Hirdetés

Új hozzászólás Aktív témák

  • rum-cajsz
    őstag

    Sziasztok!

    Pár hete kezdtem el PL/SQL-es foglalkozni, és akadt egy kérdésem:
    Hogy lehet azt megvalósítani, hogy egy tábla első három sorát dolgozzam csak fel?
    Például van egy 14 soros tábla, aminek van többek közt egy név és egy fizetésmezője, és én az első 3 sorban lévő adatokat szeretném egy általam definiált rekordba eltárolni és kiírni.

    Ezt a kódot írtam rá:

    declare

    emp_adatok emp%ROWTYPE;

    begin

    for i in 1..3
    loop
    select * INTO emp_adatok from emp
    where ROWNUM=i;

    dbms_output.put_line(emp_adatok.ename);
    end loop;
    end;

    no data found hibaüzenetet ad, pedig a táblának van pontosan 14 sora.

    Mit javítsak rajta?

    Azt most nm pont értem, hogy miért nem ad vissza sort a te példád, viszont ha visszaadna, akkor sem biztos, hogy azt kapnád, amit szeretnél, mivel a lekérdezés eredménye order by nélkül nem feltétlenül ugyanazt a sorrendet adja vissza egymás után kétszer.

    Az első 3 sort így tudod szűrni:

    begin
    for i in (
    select * INTO emp_adatok from emp where ROWNUM<4
    ) loop
    dbms_output.put_line(i.ename);
    end loop;
    end;

Új hozzászólás Aktív témák