当我尝试在存储过程中使用该表时,我会遇到此错误。当我从表中选择 *时,我会得到结果。但是,当我将其放入存储过程中(与其他表一起加入)并编译时,我会得到错误,错误(269,17):PL/SQL:ORA-00942:表或视图不存在
关于为什么会发生这种情况的任何想法?
在另一个模式拥有的存储过程中使用一个架构中的表格,该过程的模式需要在表上直接授予:
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
可以从表中选择,但其过程不能。
当您执行存储过程中的内容时会发生什么?您提到一个联接表 - 与从表中的选择 *不同。您可能必须通过架构名称完全限定表名。
从schema.table中选择 *;