Lỗi được báo cáo đối với dòng 11 của phần thân gói, đó là
RETURN NUMBER;
Số là một kiểu dữ liệu, không phải là một tên biến. Không rõ bạn thực sự muốn gì để trở lại đây; khi bạn đang truy vấn và nắm bắt nó, có lẽ là LOCATION
; nhưng vì đó là một chuỗi, nên kiểu trả về của hàm cũng cần phải là một chuỗi (tức là VARCHAR2
thay vì NUMBER
). Có lẽ:
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;
Hoặc thậm chí tốt hơn, sử dụng kiểu dữ liệu cột như bạn đã ở nơi khác:
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
...
Tất nhiên, bạn sẽ cần phải thay đổi đặc điểm kỹ thuật của gói để phù hợp.