Chyba je hlášena na řádku 11 těla balíčku, což je
RETURN NUMBER;
Číslo je datový typ, nikoli název proměnné. Není jasné, co se sem vlastně chcete vrátit; jak se dotazujete a zachycujete, možná LOCATION
; ale protože se jedná o řetězec, návratový typ funkce by také musel být řetězec (tj. VARCHAR2
místo NUMBER
). Možná:
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;
Nebo ještě lépe použijte datový typ sloupce, jak jste již jinde:
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
...
V každém případě budete muset změnit specifikaci balíčku tak, aby odpovídala, samozřejmě.