CREATE OR REPLACE PACKAGE BODY China IS
    PROCEDURE I_DAILIINFO(REG_ID in varchar2,Output OUT varchar2);
end China;CREATE OR REPLACE PACKAGE BODY China IS
    PROCEDURE I_DAILIINFO(v_REG_ID in varchar2,Output OUT varchar2)
    AS 
        --定义游标
        CURSOR myCursor IS SELECT * FROM dailireg WHERE reg_id=v_REG_ID;
        r myCursor%ROWTYPE;
      BEGIN
        open myCursor;
        FETCH myCursor into r; 
        --新增代理商
        DECLARE DAILI_NUM NUMBER := 1;
        DAILI_ID varchar2(50)  := SYS_GUID();
        BEGIN
          --获取代理商的ID
          select seq_daili_num.nextval into DAILI_NUM from dual;
          --返回代理商的编号
          Output := DAILI_NUM;
          --向代理商标中插入数据
          INSERT INTO dailiinfo(dl_id,pro,pro_id,city,city_id,corp_name,corp_adds,link_man,zw,tel,fax,net,emil,main_obj,start_time,corp_jj,ywnl,ip,begin_time,end_time,dl_number,dl_pwd)
                VALUES(DAILI_ID,r.pro,r.pro_id,r.city,r.city_id,r.corp_name,r.corp_adds,r.link_man,r.zw,r.tel,r.fax,r.net,r.emil,r.main_obj,r.reg_time,r.corp_jj,r.ywnl,r.ip,sysdate,add_months(sysdate,+1*12),DAILI_NUM,DAILI_NUM);
           --删除注册时代理商的临时表
           DELETE FROM dailireg WHERE reg_id=v_REG_ID;
           --向代理商账号中添加账户信息
           INSERT INTO daili_zanghao(zh_id,dl_number,corp_name,money_class,money_xy,money_fd,ip)
                 VALUES (SYS_GUID(),DAILI_NUM,r.corp_name,'RMB',0,0,r.ip);
         END;
         close myCursor;
    END I_DAILIINFO;
END China;以上代码报错:PACKAGE BODY MADEINCHINA.CHINA 编译错误
错误:PLS-00323: 子程序或游标 'I_DAILIINFO' 已在程序包说明中说明,必须在程序包体中对其进行定义。
行:75
文本:)
注:这段代码 前几天还对,昨天我多加了个存储过程 就一直报这个错,然后我把那个存储过程删掉,这个还是报错?
   望大家帮忙解决下,解决问题了又加分。谢谢各位!!

解决方案 »

  1.   

    CREATE OR REPLACE PACKAGE BODY China IS
        PROCEDURE I_DAILIINFO(REG_ID in varchar2,Output OUT varchar2);
    end China;这应该是包的定义,多了个body关键字
    还有包与包体之间加个/
      

  2.   

    CREATE OR REPLACE PACKAGE BODY China IS
        PROCEDURE I_DAILIINFO(REG_ID in varchar2,Output OUT varchar2);
    end China;没有package定义,都是package body的定义把上面的改成package的定义
    CREATE OR REPLACE PACKAGE China IS
        PROCEDURE I_DAILIINFO(REG_ID in varchar2,Output OUT varchar2);
    end China;
      

  3.   

    CREATE OR REPLACE PACKAGE China IS 
        PROCEDURE I_DAILIINFO(REG_ID in varchar2,Output OUT varchar2); 
    end China;