sql >> Database >  >> RDS >> Oracle

Poging om een ​​pakket te maken - fout PLS-00330

De fout wordt gerapporteerd tegen regel 11 van de pakkettekst, die is

    RETURN NUMBER;

Getal is een gegevenstype, geen variabelenaam. Het is niet duidelijk wat je hier eigenlijk wilt teruggeven; terwijl je het opvraagt ​​en vastlegt, misschien LOCATION; maar aangezien dat een string is, zou het retourtype van de functie ook een string moeten zijn (d.w.z. VARCHAR2 in plaats van NUMBER ). Misschien:

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;

Of nog beter, gebruik het kolomgegevenstype zoals u al elders bent:

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

Hoe dan ook, u moet de pakketspecificatie natuurlijk aanpassen zodat deze overeenkomt.




  1. PostgreSQL, min, max en aantal datums binnen bereik

  2. Kan geen verbinding maken met Oracle vanuit een Windows-service (fout:ORA-12154:TNS:kan servicenaam niet omzetten (12154) )

  3. Een standaard datumnotatie instellen op PostgreSQL

  4. Een globale tijdelijke tabel maken in Oracle