Hogyan tudnám megoldani ezt PL/SQL-ben?
Van egy függvényem ami vár egy paramétert. Egy termék nevet, és egy lekérdezést végez vele. Ha az adott termék benne van az adatbázisban akkor visszatér a mennyiségével, ha nincs akkor az exception ágra kerül. Egyetlen problémám az hogy ugyebár number a visszatérési értéke tehát csak számmal térhet vissza a függvény, ami jó is ha van a paraméterben szereplő nevű termék. Viszont ha nincs, azt szeretném, ha egy szöveggel térjen vissza. pl: return 'Nincs ilyed adat.';. Viszont ekkor hibát jelez. Próbáltam, hogy más visszatérési értéket adok meg akkor meg ezt dobja: ORA-06502: PL/SQL: numeric or value error
create or replace function lekerdez(pnev in termek.nev%type) return number is
eredmeny number:=0;
begin
select mennyiseg into eredmeny from termek where nev=pnev;
return eredmeny;
exception
when NO_DATA_FOUND then
return 0;
end;
Mi lehet a gond?
Egy függvényből csak egyfajta visszatérő értéket tudsz kapni (pillanatnyi ismereteim szerint legalábbis), de azt megteheted, hogy a) szövegként küldöd ki a számot is, és ha olyan, visszakonvertálod, vagy b) a függvény hívása után 'szövegesíted' a választ.
eredm = lekerdez(pnev in termek.nev%type)
if eredm = 0 then
msg = 'Nincs ilyed adat'
else
msg = eredm || ' rekordot találtam'
end if;
Vagy valami efféle.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!