我是SQL的新手,我正在尝试创建一个包含函数和过程的包,遗憾的是我遇到了问题并且发生了以下错误
' PLS-00103:遇到符号"功能"当期待以下之一时:authid as compress编译包装可访问符号"是"取代了"功能"接着说。编译失败,第2行(17:11:44)PLS-00103:遇到符号" NUMBER"当期待以下之一时:(编译失败,第3行(17:11:44)PLS-00103:遇到符号" CREATE"当期待下列之一时:是压缩编译包裹的'
我已经阅读并做了研究以尝试解决问题,但一直无法修复它可能我可以帮助指导我解决问题。 感谢堆栈溢出审查问题,因为我是SQL的新手。
包装规范
create or replace package e_con_pack
FUNCTION GET_LOCATION_namel (p_con_id in NUMBER, p_con_name out VARCHAR2)RETURN l_con_id;
procedure ADD_CONSULTANT;
procedure update_location;
procedure delete_con;
end e_con_pack;
包体
create or replace PACKAGE BODY e_con_pack
create or replace FUNCTION
GET_LOCATION_namel (p_con_id in NUMBER, p_con_name out VARCHAR2)
RETURN NUMBER 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 l_con_id;
END;
create or replace PROCEDURE ADD_CONSULTANT
( p_con_id LDS_CONSULTANT.CONSULTANT_ID%type,
p_con_name LDS_CONSULTANT.CST_NAME%type,
p_con_start LDS_CONSULTANT.START_DATE%type,
p_con_end LDS_CONSULTANT.LEAVE_DATE%type,
p_con_loc LDS_CONSULTANT.LOCATION%type,
p_con_spec LDS_CONSULTANT.SPECIALIST_AREA%type)
IS
BEGIN
INSERT INTO LDS_CONSULTANT (CONSULTANT_ID, CST_NAME, START_DATE, LEAVE_DATE, LOCATION, SPECIALIST_AREA)
VALUES (p_con_id, p_con_name, p_con_start, p_con_end, p_con_loc, p_con_spec);
END;
create or replace PROCEDURE update_location (
p_con_id IN lds_consultant.consultant_id%type,
p_con_loc IN lds_consultant.location%type
)
IS
BEGIN
UPDATE lds_consultant
SET
location = p_con_loc
WHERE consultant_id = p_con_id;
END;
create or replace PROCEDURE delete_con (
p_con_id IN lds_consultant.consultant_id%type )
As
Begin
Delete from LDS_CONSULTANT Where CONSULTANT_ID=p_con_id;
END;
END e_con_pack;
答案 0 :(得分:0)
我认为包装中的返回类型问题是
FUNCTION GET_LOCATION_namel(NUMBER中的p_con_id,p_con_name out VARCHAR2)返回 l_con_id ;
应该是
之类的东西FUNCTION GET_LOCATION_namel (p_con_id in NUMBER, p_con_name out VARCHAR2)RETURN NUMBER;
也在函数体内部,你返回的变量l_cod_id没有区别
答案 1 :(得分:0)
您缺少关键字 AS/IS
。请尝试以下方法:
create or replace package e_con_pack
AS
FUNCTION GET_LOCATION_namel (p_con_id in NUMBER, p_con_name out VARCHAR2)
:
: