PLS-00201: 必须说明标识符

anglelwq 2009-03-12 02:03:33
(
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
我应该怎么修改啊?
...全文
13249 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
maxinliangGenius 2012-08-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

在System用户下:执行grant execute on 包名 to 用户名;
说明:
包名:要使用的包名;如:dbms_repcat。
用户名:要使用此包的用户。如:mvadmiv。
举例:grant execute on dbms_repcat to mvadmiv;
……
[/Quote] 非常感谢,我按着你说的,OK了。
chankwa 2011-12-13
  • 打赏
  • 举报
回复
我也遇到同样一个问题,在plspl中创建了一个过程,oracle是9i2.0.1,myeclipse是6.5,总是编译出现这个问题,不知道怎么解决。加载了驱动,添加了包,权限也赋了。
chankwa 2011-12-13
  • 打赏
  • 举报
回复
java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须说明标识符 'SP_PRO9'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
小灰狼W 2010-04-28
  • 打赏
  • 举报
回复
该过程是在哪个用户下编译的,检查该用户是否有arj.readmessageao的执行权限
csbwolf10 2010-04-28
  • 打赏
  • 举报
回复
sxdtgsh 正解。
已经验证通过

不同的是:
还在对象 sys.dba_jobs 上对存储过程的用户进行了读授权。

才编译通过的。
csbwolf10 2010-04-28
  • 打赏
  • 举报
回复
sxdtgsh 正解。
已经验证通过
vber1010 2010-02-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 anglelwq 的回复:]
arj 授予了DBA的权限,我现在发现了是不是我程序包里没声明,应该怎么声明?
[/Quote]
声明不是在package body,而是在package里。 你这个错误应该是当前用户没有权限读这个包。
在当前用户下
begin
dbms_output.putline(arj.readmessageao(1,2));
end;
测试下是否会报同样的错。
gcl_wzsw 2010-02-07
  • 打赏
  • 举报
回复
在System用户下:执行grant execute on 包名 to 用户名;
说明:
包名:要使用的包名;如:dbms_repcat。
用户名:要使用此包的用户。如:mvadmiv。
举例:grant execute on dbms_repcat to mvadmiv;
龙心
2010年02月07号
sxdtgsh 2009-03-24
  • 打赏
  • 举报
回复
权限问题
grant all privileges to 过程所在的用户。
anglelwq 2009-03-12
  • 打赏
  • 举报
回复
arj 授予了DBA的权限,我现在发现了是不是我程序包里没声明,应该怎么声明?
Raul_Gonzalez 2009-03-12
  • 打赏
  • 举报
回复
arj这个schema授权了吗?
anglelwq 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 randy_ideal 的回复:]
查看arj package里是否有readmessageao函数的定义和实现,如没有,则须实现。
[/Quote]

有的 我看过了!
Raul_Gonzalez 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 randy_ideal 的回复:]
查看arj package里是否有readmessageao函数的定义和实现,如没有,则须实现。
[/Quote]

正解! 错误已经很明显了,LZ认真看一下错误提示!
白发程序猿 2009-03-12
  • 打赏
  • 举报
回复
ARJ里没有这个READMESSAGEAO函数
randy_ideal 2009-03-12
  • 打赏
  • 举报
回复
查看arj package里是否有readmessageao函数的定义和实现,如没有,则须实现。

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧