当我尝试在存储过程中使用该表时,我收到此错误。 当我从表中选择*时,我得到结果。但是当我把它放在存储过程(与其他表连接)并编译时,我得到错误, 错误(269,17):PL / SQL:ORA-00942:表或视图不存在
有关为何发生这种情况的任何想法?
答案 0 :(得分:1)
要在另一个模式拥有的存储过程中使用一个模式中的表,该过程的模式需要在表上直接授予:
grant select on ALPS.CUST_LOOKUP_DTL to myschema;
对架构所具有的角色的授予不足:
grant select on ALPS.CUST_LOOKUP_DTL to some_role;
grant some_role to myschema;
在这种情况下,myschema
可以从表中选择,但其程序不能。
答案 1 :(得分:0)
执行存储过程中的操作会发生什么?您提到了一个连接表 - 与表中的select *不同。您可能必须按模式名称完全限定表名。
从schema.table中选择*;