Kesalahan dilaporkan terhadap baris 11 dari isi paket, yaitu
RETURN NUMBER;
Nomor adalah tipe data, bukan nama variabel. Tidak jelas apa yang sebenarnya ingin Anda kembalikan ke sini; saat Anda menanyakan dan menangkapnya, mungkin LOCATION
; tetapi karena itu adalah string, tipe pengembalian fungsi juga harus berupa string (yaitu VARCHAR2
daripada NUMBER
). Mungkin:
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;
Atau bahkan lebih baik, gunakan tipe data kolom seperti yang sudah Anda lakukan di tempat lain:
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
...
Bagaimanapun, Anda perlu mengubah spesifikasi paket agar sesuai, tentu saja.