Fejlen rapporteres mod linje 11 i pakketeksten, som er
RETURN NUMBER;
Tal er en datatype, ikke et variabelnavn. Det er ikke klart, hvad du egentlig ønsker at returnere her; mens du forespørger og fanger det, måske LOCATION
; men da det er en streng, skal returtypen af funktionen også være en streng (dvs. VARCHAR2
i stedet for NUMBER
). Måske:
create or replace PACKAGE BODY e_con_pack
AS
FUNCTION
GET_LOCATION_namel (p_con_id in NUMBER, p_con_name out VARCHAR2)
RETURN VARCHAR2 IS
LOCATION VARCHAR2(30);
BEGIN
SELECT LOCATION INTO LOCATION FROM LDS_CONSULTANT WHERE CONSULTANT_ID = p_con_id;
SELECT CST_NAME INTO p_con_name FROM LDS_CONSULTANT WHERE CONSULTANT_ID = p_con_id;
RETURN LOCATION;
END GET_LOCATION_namel;
Eller endnu bedre, brug kolonnedatatypen, som du allerede er et andet sted:
create or replace PACKAGE BODY e_con_pack
AS
FUNCTION
GET_LOCATION_namel (p_con_id in NUMBER, p_con_name out VARCHAR2)
RETURN LDS_CONSULTANT.LOCATION%type IS
LOCATION LDS_CONSULTANT.LOCATION%type;
BEGIN
...
Uanset hvad, skal du selvfølgelig ændre pakkespecifikationen, så den matcher.