在SQL Plus中使用create database link创建了两台oracle 10g服务器的一个连接,名了WD.并且显示创建成功!又在另一台服务器上创建了一个dept表,我现在用select * from dept@WD;去访问这个表,出现了下列错误:SQL> select * from dept@WD;
select * from dept@WD
                   *
ERROR at line 1:
ORA-12169: TNS:Net service name given as connect identifier is too long很明显不是服务器名字太长,因为名字的长度好像是256个字节.请教各位高手,这个怎么办?

解决方案 »

  1.   

    global_names参数设置对了吗?
    dblink访问的时候要加用户名的吧
      

  2.   

    create public database 
    link fwq12 connect to fzept
    identified by neu using 'fjept'
    用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义
      

  3.   

    我就是在tnsnames.ora中定义的,如下:
    TNSA_B = 
                   (DESCRIPTION = 
                    (ADDRESS_LIST = 
                      (ADDRESS = 
                       (COMMUNITY = tcp.world) 
                       (PROTOCOL = TCP) 
                       (Host = 192.1.1.2) 
                       (Port = 1521) 
                      ) 
                    ) 
                    (CONNECT_DATA = (SID = ORCL) 
                    ) 
                   )
    而后再用如下语句创建dblink:
    create   public   database   
    link   WD   connect   to   temp 
    identified   by   temp   using   'TNSA_B';
    并且显示创建成功。
    像这样连接后就可以用TNSA_B直接访问了吧,不用再给出用户名和密码了。
    但是出现上面提到的错误:
    ORA-12169:   TNS:Net   service   name   given   as   connect   identifier   is   too   long
      

  4.   

    已解决了,oracle 10g中不用在tnsnames.ora中定义,用net manager创建一个远端服务就行了。