Wpis z mikrobloga

witam, mam problem z zadaniem #plsql,

Napisz funkcję do obliczania rocznej pensji wybranego pracownika


napisałem fukcję:

CREATE OR REPLACE FUNCTION rocznapensja (idpracownika IN number)

RETURN number IS

pensja pracownicy.placapod%type;

BEGIN

SELECT placapod*12 INTO pensja FROM pracownicy

WHERE idprac = idpracownika;

RETURN (pensja);

END;


następnie próbowałem ją wywołać

select rocznapensja(100) from pracownicy;


i wyskoczył mi błąd:

Error starting at line : 11 in command -

select rocznapensja(100) from pracownicy

Error report -

SQL Error: ORA-06502: PL/SQL: numeric or value error: number precision too large

ORA-06512: at "HR.ROCZNA_PENSJA", line 5

06502. 00000 - "PL/SQL: numeric or value error%s"

*Cause: An arithmetic, numeric, string, conversion, or constraint error

occurred. For example, this error occurs if an attempt is made to

assign the value NULL to a variable declared NOT NULL, or if an

attempt is made to assign an integer larger than 99 to a variable

declared NUMBER(2).

*Action: Change the data, how it is manipulated, or how it is declared so

that values do not violate constraints.


co mam poprawić żeby działało?
#oracle #naukaprogramowania
  • 1