El error se informa en la línea 11 del cuerpo del paquete, que es
RETURN NUMBER;
El número es un tipo de datos, no un nombre de variable. No está claro lo que realmente quiere devolver aquí; mientras lo consulta y lo captura, tal vez LOCATION
; pero como se trata de una cadena, el tipo de retorno de la función también debería ser una cadena (es decir, VARCHAR2
en lugar de NUMBER
). Quizás:
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;
O incluso mejor, use el tipo de datos de columna como ya está en otro lugar:
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
...
De cualquier manera, deberá cambiar la especificación del paquete para que coincida, por supuesto.