rt!
oracle 里面 想直接通过写sql语句获取其他用户下的表数据 要怎么写呢
比如有没有类似这样 
select * from 用户名/密码@listener tbname

解决方案 »

  1.   

    如果是同一个库,直接下面sql:
    select * from 用户名.表名
    如果是不同的库,就需要建立dblink,然后:
    select * from 用户名.表名@dblink_name
      

  2.   

    1.假设数据库DB1需要访问DB2的表,需要在DB1建立dblink,前提是DB1的tns中有配DB2的信息;
    2.假设数据库DB1中有两个用户USER1,USER2,需要从USER1账号访问USER2中的表TABLE2,需要在USER2中将TABLE2 GRANT给USER1,USER1才有权限访问,访问的时候用SELECT * FROM USER2.TABLE2语句,如果不想在TABLE2前面加上SCHEMA(USER2),需要在USER1中建立TABLE2的同义词(SYNONYM),或者在USER2中建立TABLE2的PUBLIC SYNONYM(这个好处是如果你有第三个账号也想访问这张表,那么也是有同义词的,不要额外再建)以上需要你的账号有CREATE DBLINK, GRANT, CREATE SYNONYM等权限,没有这些权限需要让DBA帮你加。
      

  3.   

    首先是管理员用户才行,才有权限查看别的用户的表。
    SELECT t.TABLE_NAME FROM dba_tables t
    WHERE t.OWNER='用户名'