现在一个包编译的时候,
如果加上
    select min(FRECVED) into vCount from TALCJOBRCVBIN
        where FJOBID = piJobID and FARTICLE = piArticle;
这句话,
那么,就会编译不过去,具体表现就是停在那儿不动,然后这个包被锁住,别人也无法使用。但是我把这句话注释掉以后,
就完全可以编译过去了。但是这条语句放到别的包里就没有任何问题,这个表在这个包里就只用了这一次哪位知道这是什么问题啊郁闷死了

解决方案 »

  1.   

    function HadDirectStkin(
        piJobID in varchar2,
        piArticle in integer,
        poErrMsg out varchar2
      ) return integer
      is
        vCount integer;
        vArticleCode tarticle.fcode%type;
      begin
        ---读取货品Gid
        select max(fcode) into vArticleCode
        from tarticle
        where fgid = piArticle;
        
        if vArticleCode is null then
         poErrMsg := '123456';
         return(1);
        end if;
         
    /*    select min(FRECVED) into vCount from TALCJOBRCVBIN
            where FJOBID = piJobID and FARTICLE = piArticle;*/
        --已经收货完成,不能再次收货
        if vCount is null then
          select '配货作业' || piArticle || '中不存在货品' || vArticleCode into poErrMsg
          from TARTICLE where FGID = piArticle;
          return(1);
        elsif vCount in (2, 3) then
          select '配货作业' || piArticle || '中货品' || vArticleCode || '已经收货完成,不能再次收货' into poErrMsg
          from TARTICLE where FGID = piArticle;
          return(1);
        end if;
        return(0);
      end HadDirectStkin;
      

  2.   

    版本:SQL> select * from v$version;BANNER
    ----------------------------------------------------------------
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    PL/SQL Release 9.2.0.1.0 - Production
    CORE 9.2.0.1.0 ProductionTNS for 32-bit Windows: Version 9.2.0.1.0 - Production
    NLSRTL Version 9.2.0.1.0 - Production编译通过
    测试通过
      

  3.   

    你把
        select min(FRECVED) into vCount from TALCJOBRCVBIN
            where FJOBID = piJobID and FARTICLE = piArticle;
    这条语句的相关内容放到其他包里,做一个函数,
    这里调用这个函数,
    试试看,有可能就行了。
      

  4.   

    一般只有在使用dblink的时候才会出现编译没反映的情况。 当然这个dblink是一个网络连接比较差的数据库