Hirdetés

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

  • Lortech
    addikt

    Üdv!

    Egy proceduret írok, és ellenőriznem kell, hogy egy lekérdezés üres rekodrodt adott vissza-e, vagy sem. (Ebben a pédában: van-e x,y shelf vagy nincs?)

    Ezt hogy tudom megtenni?

    Ezt próbáltam:

    temp shelves.loadability%TYPE := NULL;
    BEGIN

    select loadability into temp from shelves where rownumber = x and columnnumber = y;
    IF temp IS NOT NULL THEN
    /* do something when it's not empty */
    ELSE
    /* do the other thing when it's empty */
    END IF;

    De így sose lép be az ELSE ágba... :(

    Szerk.: Mielőbb vki félreértené: szüksége van az else ágra, mert hanem létezik a shelf, insertelnem kell.

    NO_DATA_FOUND exception keletkezik, ha a select into statement nem hoz eredményt, ezt a kivételt lekezelve megkapod az else ágat.

    EXISTS utasítás nincs ora plsql-ben.
    Where záradékban használhatod ha a megoldásodnál maradsz, én inkább alábbit ajánlom.

    ...
    temp integer;
    ...
    select count(*) into temp from ? where ? and rownum = 1;
    if temp = 1 then
    --?
    else
    --?
    end if;
    ...

    szerk: na látom ide lyukadtál ki magadtól is.

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