Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Versuch, ein Paket zu erstellen – Fehler PLS-00330

Der Fehler wird in Zeile 11 des Paketkörpers gemeldet, die

ist
    RETURN NUMBER;

Zahl ist ein Datentyp, kein Variablenname. Es ist nicht klar, was Sie hier eigentlich zurückgeben wollen; während Sie es abfragen und erfassen, vielleicht LOCATION; Da es sich jedoch um einen String handelt, müsste der Rückgabetyp der Funktion auch ein String sein (d. h. VARCHAR2 statt NUMBER ). Vielleicht:

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;

Oder noch besser, verwenden Sie den Spaltendatentyp, wie Sie es bereits an anderer Stelle tun:

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 beiden Fällen müssen Sie natürlich die Paketspezifikation entsprechend ändern.