B可以为这些对象创建同义词或视图。如
create synonym TABLENAME for A.TABLENAME;

create view TABLENAME as select * from A.TABLENAME;

解决方案 »

  1.   

    CREATE PUBLIC synonym tablename for user1.tablenameconn user2/password@sidselect * from tablename
      

  2.   

    如果不用楼上两位的方法,那么必须写成 select * from "A"."TABLENAME"
    因为那个表不是B用户的,为了访问,当然得给出“全路径”,就好像你在windows中找文件一样,得说明这个文件是哪个目录下的.而且,强烈建议访问数据表的时候指明该表的属主(也就是OWNER,也就是创建这个表的用户),因为假如B用户下也有一个同名的表,那么你用 select * from tablename 根本不会出错,但查到的内容就变了。
      

  3.   

    1. 你首先要明白Schema这个概念,也就是所有者.
    2. 当你查询的对象不是自己的时候,必须加上所有者
      

  4.   

    当然也可以用同义词,view.
    ==========引用1楼的==========
    B可以为这些对象创建同义词或视图。如
    create synonym TABLENAME for A.TABLENAME;

    create view TABLENAME as select * from A.TABLENAME;
      

  5.   

    1. 应该能明白了吧.
    2. 在sql server的中部分限定和完全限定
    3. 完全限定是: 服务器名称.数据库名称.所有者.数据库对象  4部分组成.
    4. 而Oracle只用所有者.数据库对象就可以了.
      

  6.   

    对应大型的数据库,访问起来就是比较的麻烦,当然这也是有更大的好处的。比如,在一个大型的分布式系统中(数据库是分布式的),会有很多的用户和很多表,这就经常发生,不同的用户拥有相同名称的表,但是,还有其他的用户需要访问这些表,所以,为了表示区分,就一定要有限定符。还有一个小小的问题: 一般情况下,表的使用者经常是没有建立任何的表,而只是具有查询的权限,这个时候,就可以通过建立同义词来隐藏这些表的 物理位置和实际的表所有者,而且,可以不必费力的进行权限的设置。
    哥们刚学Oracle 一个月,不当之处请拍砖!