(
 flynum_1 varchar2,
 aonum_2 varchar2
 )
return varchar2
as
val  varchar2(100);begin
    if(flynum_1='101') then
      return '1'; 
          
    end if;
    
    if(boeing.readpaperao(flynum_1,aonum_2)='1') then
      return '1'; 
          
    end if;
    
    
    if (arj.readmessageao(flynum_1,aonum_2))='1' then
      return '1'; 
      
    else 
      
      if(substr(aonum_2,0,3)!='AAO') then        select finisher into val from boeing.zoldrecord_view where flynum=flynum_1 and aonum=aonum_2  and validity=1 ;
      else
        select finisher into val from boeing.zaaooldrecord_view where flynum=flynum_1 and aaonum=aonum_2  and validity=1 ;
      end if;      if(val is not null) then
        return '1';
      ELSE
        RETURN '0';
      END IF;   
      
    end if;   
    
    EXCEPTION
      
        WHEN NO_DATA_FOUND THEN        
            return '0';
           
end;编译的时候报
行号= 23 列号= 9 错误文本= PLS-00201: 必须说明标识符 'ARJ.READMESSAGEAO'
行号= 23 列号= 5 错误文本= PL/SQL: Statement ignored
我应该怎么修改啊?

解决方案 »

  1.   

    查看arj package里是否有readmessageao函数的定义和实现,如没有,则须实现。
      

  2.   

    arj 授予了DBA的权限,我现在发现了是不是我程序包里没声明,应该怎么声明?
      

  3.   

    权限问题
    grant all privileges to 过程所在的用户。
      

  4.   

    在System用户下:执行grant execute on 包名 to 用户名;
    说明:
       包名:要使用的包名;如:dbms_repcat。
       用户名:要使用此包的用户。如:mvadmiv。
    举例:grant execute on dbms_repcat to mvadmiv;
                                                                      龙心
                                                                        2010年02月07号
      

  5.   

    声明不是在package body,而是在package里。 你这个错误应该是当前用户没有权限读这个包。
    在当前用户下
    begin
    dbms_output.putline(arj.readmessageao(1,2));
    end;
    测试下是否会报同样的错。
      

  6.   

    sxdtgsh  正解。
    已经验证通过
      

  7.   

    sxdtgsh 正解。
    已经验证通过不同的是:
    还在对象 sys.dba_jobs 上对存储过程的用户进行了读授权。才编译通过的。
      

  8.   

    该过程是在哪个用户下编译的,检查该用户是否有arj.readmessageao的执行权限
      

  9.   

    java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列: 
    PLS-00201: 必须说明标识符 'SP_PRO9'
    ORA-06550: 第 1 行, 第 7 列: 
    PL/SQL: Statement ignored
      

  10.   

    我也遇到同样一个问题,在plspl中创建了一个过程,oracle是9i2.0.1,myeclipse是6.5,总是编译出现这个问题,不知道怎么解决。加载了驱动,添加了包,权限也赋了。