エラーは、パッケージ本体の11行目に対して報告されます。これは
RETURN NUMBER;
数値はデータ型であり、変数名ではありません。ここに実際に何を返したいのかは明確ではありません。クエリを実行してキャプチャしているときに、おそらくLOCATION
;ただし、これは文字列であるため、関数の戻り型も文字列である必要があります(つまり、VARCHAR2
NUMBER
ではなく )。おそらく:
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;
または、他の場所にあるように、列のデータ型を使用することをお勧めします:
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
...
いずれにせよ、もちろん、それに合わせてパッケージ仕様を変更する必要があります。