Oracle
 sql >> Database >  >> RDS >> Oracle

Tentativo di creazione di un pacchetto - errore PLS-00330

L'errore viene segnalato sulla riga 11 del corpo del pacchetto, che è

    RETURN NUMBER;

Il numero è un tipo di dati, non un nome di variabile. Non è chiaro cosa vuoi effettivamente tornare qui; mentre lo stai interrogando e catturandolo, forse LOCATION; ma poiché si tratta di una stringa, anche il tipo restituito della funzione dovrebbe essere una stringa (ad esempio VARCHAR2 anziché NUMBER ). Forse:

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 ancora meglio, usa il tipo di dati della colonna come sei già altrove:

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
...

In ogni caso, dovrai modificare le specifiche del pacchetto in modo che corrispondano, ovviamente.