一个奇怪的查询现象

一个奇怪的查询现象,高手请进select*fromEAB.S_KHXX在pl/sqldeveloper中单独查询可以用的.但是我在存储过

一个奇怪的查询现象,高手请进
select   *   from   EAB.S_KHXX;

在pl/sql   developer中单独查询可以用的.

但是我在存储过程中用到
insert   into   table1   (a)
select   a   from   t_org_dealer   ,   EAB.S_KHXX
where   .....

他却说我这个EAB.S_KHXX没有定义.

具体出错信息如下:
Error:   PL/SQL:   SQL   Statement   ignored
Line:   155
Text:   INSERT   INTO   T_CUST_CUSTOMER

Error:   PLS-00201:   必须说明标识符   'EAB.S_KHXX '
Line:   208
Text:   FROM   T_CUST_CUSTOMER,EAB.S_KHXX

[解决办法]
把完整的SQL和表结构贴出来看看
[解决办法]
没有给权限
[解决办法]
SQLPlus等运行的 select 是根据你login的user的角色赋予权限的。
所以你得SQL是正确的。
但是到了PLsql中,角色赋予的权限就全部无效了。你必须对已用来执行PLSQL的那个User直接赋予访问EAB.S_KHXX的权限。
[解决办法]
在存储过程里,必须单独grant权限,不能grant role,不会生效的