我oracle的一个实例有两个用户a,b,通过sys用户建了基于a用户下表tab1的public synonym。然后b用户登录,直接select * from tab1没有问题,但如果在procedure中有基于tab1的select,则报如下错误,请问是怎么回事呢?
LINE/COL ERROR
-------- -----------------------------------------------
25/53    PL/SQL: ORA-00942: table or view does not exist
6/7      PL/SQL: SQL Statement ignored

解决方案 »

  1.   

    同义词只相当于一个链结
    你还需要给用户赋予表权限然后b用户登录,直接select * from tab1没有问题
    你确定?你的B用户是否有TAB1表?
      

  2.   

    感觉不对啊,登录b用户直接查询tab1都能成功,在procedure中就失败,应该成功的才对!
    按照你的错误信息,是说table 不存在!可能就跟synonym有关。你直接给b用户赋select权限后再创建synonym试试关注中.....
      

  3.   

    谢谢java3344520,果然是需要赋select权限。