创建packge error

2014/06/20 17:31
阅读数 267

Error:PLS-00323: 子程序或游标 已在程序包说明中声明, 必须在程序包体中对其进行定义。



1.今天在包中修改了一个函数(添加了一个参数),报了下面的错误Error: PLS-00323: 子程序或游标 pk_Shop_Game 已在程序包说明中声明, 必须在程序包体中对其进行定义。

 

错误原因:包头里面定义的函数和包体里面函数的参数不同,出现的错误。因为我只在包中的函数里添加了一个参数,而没有相应的修改包头的参数。

2.package中声明的与body中的实现,参数类型或参数个数或参数顺序不一致,或在body中没有相应的实现

  example:

create or replace package PKG_RPT_RECUPCOMISS is
PROCEDURE P_RPT_RECUPCOMISS_MAIN(I_TRANSFER_TIME DATE);
PROCEDURE P_RPT_RECUPCOMISS_TMP(I_PROCESS_DATE DATE);
end PKG_RPT_RECUPCOMISS;

create or replace package body PKG_RPT_RECUPCOMISS is
  PROCEDURE P_RPT_RECUPCOMISS_MAIN(I_PROCESS_DATE DATE) IS
  BEGIN
    P_RPT_RECUPCOMISS_TMP(I_PROCESS_DATE);
  END P_RPT_RECUPCOMISS_MAIN;

  PROCEDURE P_RPT_RECUPCOMISS_TMP(I_PROCESS_DATE DATE) IS
  BEGIN
    DELETE FROM T_RPT_RECUPCOMISS_TMP T
     WHERE t.process_date = I_PROCESS_DATE;
  END;
end PKG_RPT_RECUPCOMISS;

报的错就是

Compilation errors for PACKAGE BODY UNIMED_RP_NP_DEV.PKG_RPT_RECUPCOMISS


Error: PLS-00323: subprogram or cursor 'P_RPT_RECUPCOMISS_MAIN' is declared in a package specification and must be defined in the package body

Line: 2

Text: PROCEDURE P_RPT_RECUPCOMISS_MAIN(I_PROCESS_DATE DATE) IS


展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部