在tnsnames.ora中配置了数据库的服务器1、2的服务器名:
服务器1:
dicc=  
     (DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))
      )
      (CONNECT_DATA =
         (SERVICE_NAME = dicc)
      )
   )
服务器2:
orcl=  
     (DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.112)(PORT = 1521))
      )
      (CONNECT_DATA =
         (SERVICE_NAME = orcl)
      )
   )在服务器2中建立的database link 如下:
在oracle develop 的database link中建立的连接  
database link 
        owner:随便起个名字(user1)
        name:TEST_LINK_1 --数据库连接的的名称   
             在勾选public/shared时  只能选shared  当选public时,创建不了连接
connect to
        username:shi   ---数据库1中的帐户名
        password:***   ---数据库1中的帐户对应的密码
        database:dicc  ---数据库1中的服务名 
authenticated by
        username:xyis  --数据库2中的帐户名
        password:**    --数据库2中的帐户对应的密码创建好后它的sql语句为:create database link test_link_1
                       connect to shi
                       using  'dicc ';当我用select * from usr_db_links时  也能查到我建立的数据库连接~但当我想在数据库2中查询数据库1中的表(T_SHI_1)信息时``
select table_name,tablespace_name from T_SHI_1@TEST_LINK_1; --报错:ORA-12154: TNS: could not resolve the connect identifier specified
到底错在哪啊?该怎么改啊?

解决方案 »

  1.   

    设置服务器2中 global_names=false 试一下]
      

  2.   

    用数据库2的用户名和密码登陆后,在SQLplus 里SQL>alter system set global_names=false;
      

  3.   

    如果在服务器2上建立dblink 要连接到 dicc 数据库,那么你的服务器2上必须有dicc 的连接串。dicc=  
         (DESCRIPTION =
          (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))
          )
          (CONNECT_DATA =
             (SERVICE_NAME = dicc)
          )
       ) 
      

  4.   

    如果在服务器2上建立dblink 要连接到 dicc 数据库,那么你的服务器2上必须有dicc 的连接串。dicc=  
         (DESCRIPTION =
          (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))
          )
          (CONNECT_DATA =
             (SERVICE_NAME = dicc)
          )
       ) 
    ??????你的意思是说在服务器2的机子上设置吗?
      

  5.   

    是的,服务器2的tnsnames.ora中要有dicc。