sql >> Databasteknik >  >> RDS >> Oracle

Försöker skapa ett paket - fel PLS-00330

Felet rapporteras mot rad 11 i paketets kropp, vilket är

    RETURN NUMBER;

Number är en datatyp, inte ett variabelnamn. Det är inte klart vad du egentligen vill återvända här; när du frågar och fångar det, kanske LOCATION; men eftersom det är en sträng, måste returtypen för funktionen också vara en sträng (d.v.s. VARCHAR2 istället för NUMBER ). Kanske:

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 ännu bättre, använd kolumndatatypen som du redan är någon annanstans:

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

Hur som helst måste du naturligtvis ändra paketspecifikationen så att den matchar.




  1. Använda MEDIAN tillsammans med funktionerna MAX, MIN och AVG i MySQL

  2. Ta reda på om en kolumn i Oracle har en sekvens

  3. jQuery-Ajax hämta funktion med PHP klasser och funktioner

  4. Hur skapar man ett event som pågår var 24:e timme?