一个奇怪的查询现象,高手请进
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,不会生效的