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

Forsøg på at oprette en pakke - fejl PLS-00330

Fejlen rapporteres mod linje 11 i pakketeksten, som er

    RETURN NUMBER;

Tal er en datatype, ikke et variabelnavn. Det er ikke klart, hvad du egentlig ønsker at returnere her; mens du forespørger og fanger det, måske LOCATION; men da det er en streng, skal returtypen af ​​funktionen også være en streng (dvs. VARCHAR2 i stedet for NUMBER ). Måske:

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;

Eller endnu bedre, brug kolonnedatatypen, som du allerede er et andet sted:

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

Uanset hvad, skal du selvfølgelig ændre pakkespecifikationen, så den matcher.




  1. Erlang og PostgreSQL

  2. Hvordan fejlfinder man en lagret procedure i Toad?

  3. PostgreSQL:FEJL:42601:en kolonnedefinitionsliste er påkrævet for funktioner, der returnerer post

  4. SQL Server BCP eksportere beskadiget fil?