PLS-00306: wrong number or types of arguments in call to 'PRC_UNITE_PRODUCT'
ORA-06550: line 1, column 7:请帮忙解决一下啊!
存储过程是:
create or replace procedure prc_ABC_product( areaId in varchar, beginTime out varchar ,endTime out varchar)
is
  BEGIN
   beginTime := 'BBBBBaaaa';
 execute immediate 'DELETE FROM  TEM_20080425_TB_BAKE';
 execute immediate 'INSERT INTO TEM_20080425_TB_BAKE SELECT * FROM TEM_20080425_TB';
 commit;
 
END ;
调用代码是
public ExceteStoredProcedure(DataSource dataSource,String prc_name) {

super(dataSource,prc_name);
 
declareParameter(new SqlParameter(IN_AREA_ID,Types.VARCHAR));
declareParameter(new SqlOutParameter(IN_BEGIN_TIME,Types.VARCHAR));
declareParameter(new SqlOutParameter(INT_END_TIME,Types.VARCHAR));

super.compile();
}

public void doCountTable(CalledNumberPo calledNumberPo)
{

      String areaId = calledNumberPo.getCityCode();
String beginTime = calledNumberPo.getBeginTime();
String endTime  = calledNumberPo.getEndTime();

Map paraMap = new HashMap();
paraMap.put(IN_AREA_ID,  areaId);
paraMap.put(IN_BEGIN_TIME, beginTime);
paraMap.put(INT_END_TIME, endTime);


Map  resultMap = super.execute(paraMap);

}

解决方案 »

  1.   

    存储过程中我的参数是VARCHAR类型,调用存储过程付的参数我也是用的VARCHAR类型的,两边是的参数类型应该都是一样的嘛!
      

  2.   

    beginTime 和 endTime 是 out 型参数,要求在过程中给它提供返回值。
      

  3.   

    CREATE OR REPLACE  PROCEDURE PRC_ABC_PRODUCT  
    (
            areaId        in varchar2,
            beginTime     out varchar2,
            endTime       out varchar2
     )
     is
     begin
     savepoint proc;  --事务保存点
             beginTime := 'BBBBBaaaa'; 
             endTime := '';
             execute immediate 'DELETE FROM  TEM_20080425_TB_BAKE'; 
             execute immediate 'INSERT INTO TEM_20080425_TB_BAKE SELECT * FROM TEM_20080425_TB';  
     exception
      when others then
          rollback to savepoint proc;
          return;
     end prc_ABC_product;