sql >> Base de Datos >  >> RDS >> Oracle

Intentando crear un paquete - error PLS-00330

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.