oracle创建了存储过程,在PLSQL @路径 执行后报错

我的存储过程语句如下(文件.pck就这么点东西)

create or replace package pkg_ta_econtractsdeal is
/****************************************************************
* PROCEDURE: OpenEcontracts
* Describe : 开通电子合同功能
* Paramter :
* Return   : oRetStatus 方法调用结果
*            oRetMessage 方法调用返回信息
* Author   : panwq
* Date     : 2017-11-5 22:14:16       
***************************************************************/
PROCEDURE OpenEcontracts(
  oRetStatus OUT DEF_PKG.T_FLAG,
  oRetMessage OUT DEF_PKG.T_ERR_MSG
);
end pkg_ta_econtractsdeal;

/

CREATE OR REPLACE PACKAGE BODY pkg_ta_econtractsdeal IS

PROCEDURE OpenEcontracts(
  oRetStatus OUT DEF_PKG.T_FLAG,
  oRetMessage OUT DEF_PKG.T_ERR_MSG
) IS
  oRetStatus DEF_PKG.T_FLAG;
  oRetMessage DEF_PKG.T_ERR_MSG;
  
  CURSOR cur_agency IS
  SELECT t.* FROM tagencyinfo t WHERE NVL(t.c_enableecd,'0')='1' AND NVL(t.c_ecdversion,'99')='0';
BEGIN
  oRetStatus := DEF_PKG.FLAG_TRUE;
  oRetMessage := '';
  OPEN cur_agency;
  LOOP 
     FETCH cur_agency BULK COLLECT INTO vAgencyArray LIMIT def_pkg.INT_LIMIT;
     EXIT WHEN vAgencyArray.COUNT = 0;
     FOR i IN vAgencyArray.FIRST .. vAgencyArray.LAST LOOP
       INSERT INTO tagencyfiles (c_agencyno, l_fileno, c_typecode, c_versioncode, c_filename, c_filecode, c_enable)
       VALUES (vAgencyArray(i).c_agencyno,'33','InReqData','V100.01','#{DealCode}_XT_#{TACode}_#{ReqDate}_31.TXT','ECD-I','1');
       INSERT INTO tagencyfiles (c_agencyno, l_fileno, c_typecode, c_versioncode, c_filename, c_filecode, c_enable)
       VALUES (vAgencyArray(i).c_agencyno,'34','OutCfmData','V100.01','#{DealCode}_XT_#{TACode}_#{CfmDate}_32.TXT','ECD-O','1');
     END LOOP;
  END LOOP;
  close cur_agency;
END OpenEcontracts;
end pkg_ta_econtractsdeal;
/

==============================================

执行报错:
 SQL> @D:xxx.包\pkg_ta_econtractsdeal.pck;
Package created
Warning: Package body created with compilation errors

SQL> show error
Errors for PACKAGE BODY DTL.PKG_TA_ECONTRACTSDEAL:
LINE/COL ERROR
-------- ---------------------------------------------------------------------------------------------
3/1      PLS-00410: RECORD, TABLE 或参数列表中的字段不允许重复
3/1      PL/SQL: Item ignored
11/11    PLS-00323: 子程序或游标 'OPENECONTRACTS' 已在程序包说明中声明, 必须在程序包体中对其进行定义。

SQL> 

哪有问题呢?

阅读 3.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题