Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Tentando criar um pacote - erro PLS-00330


O erro é relatado na linha 11 do corpo do pacote, que é
    RETURN NUMBER;

Number é um tipo de dados, não um nome de variável. Não está claro o que você realmente deseja retornar aqui; enquanto você está consultando e capturando, talvez LOCATION; mas como isso é uma string, o tipo de retorno da função também precisa ser uma string (ou seja, VARCHAR2 em vez de NUMBER ). Talvez:
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;

Ou melhor ainda, use o tipo de dados da coluna como você já está em outro 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 qualquer forma, você precisará alterar a especificação do pacote para corresponder, é claro.