oracle 创建存储过程报错, PACKAGE BODY SCOTT.EMP_SAL_MANAGEMENT 编译错误

PACKAGE BODY SCOTT.EMP_SAL_MANAGEMENT 编译错误

错误:PLS-00323: 子程序或游标 'P_P_BONUS' 已在程序包说明中声明, 必须在程序包体中对其进行定义。
行:2
文本:IS PROCEDURE P_Bonus(MASSAGE OUT VARCHAR2,
文本:IS PROCEDURE P_Bonus(MASSAGE OUT VARCHAR2,

CREATE OR REPLACE PACKAGE EMP_SAL_MANAGEMENT IS
PROCEDURE P_P_Bonus(MESSAGE OUT VARCHAR2,
ENPNO IN NUMBER,
COMM IN NUMBER);

END EMP_SAL_MANAGEMENT;

CREATE OR REPLACE PACKAGE BODY emp_sal_management
IS PROCEDURE P_Bonus(MASSAGE OUT VARCHAR2,
EMPNO IN NUMBER,
COMM IN NUMBER)
IS
BEGIN
MASSAGE:='OK';
UPDATE EMP SET COMM=COMM WHERE EMPNO=EMPNO;
EXCEPTION
WHEN OTHERS THEN
MASSAGE := sqlerrm;
rollback;
RETURN;
END P_Bonus;
end emp_sal_management;
最新回答
解桑陌

2024-06-25 00:27:10

子程序或游标 'P_P_BONUS' 已在程序包说明中声明, 必须在程序包体中对其进行定义。意思是你已经声明了这个存储过程P_P_BONUS,但是没有在包体(PACKAGE BODY )中定义,就是你还需要在包体中定义P_P_Bonus的实现部分
一身懵逼正气

2024-06-25 00:11:37

包里定义的 P_P_Bonus与包的实现中P_Bonus名字不一样,包的定义以及实现必须保证名字,参数完全一致,修改一下即可。