我创建了一个dblink去调用另外一个数据库如下:
create public database link LINKA
  connect to aaa identified by aaa123
  using '(DESCRIPTION =
    (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS =
        (PROTOCOL = TCP)
        (HOST = 100.223.21.2)
        (PORT = 1341)
      )
    )
    (CONNECT_DATA =
      (SERVICE_NAME = bbb)
    )';
aaa和aaa123是我登陆数据库bbb的用户名和密码
现在的问题是dblink创建好了,在pl/sql的DataLink links下面也可以看到
不过当我调用Select * From aaa.test@LINKA的时候显示错误
ORA-12154 could not resolve the connect identifier specified
哪位大哥 帮忙看看啊

解决方案 »

  1.   

    tnsping都能通吧。、另外 global_name 是false还是true?单独通过tns登陆的话行吗?
      

  2.   

    create database link linkfwq 
       connect to fzept identified by neu 
       using '(DESCRIPTION = 
       (ADDRESS_LIST = 
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521)) 
       ) 
       (CONNECT_DATA = 
       (SERVICE_NAME = fjept) 
       ) 
       )'; 
      host=数据库的ip地址,service_name=数据库的ssid。LZ的配置里有两个
    (DESCRIPTION = 
        (DESCRIPTION = 
      

  3.   

    谢谢3楼和4楼 不过这个不是两个DESCRIPTION = 的问题 那个是我复制的时候没弄好 
    原因好像是同一个oracle数据库的两个数据库用户互相访问对方的表的时候好像不能用dblink的方式,直接用"用户名.表名"就可以了。
      

  4.   


    一个数据库,两个不同的模式[schema]。
      

  5.   

    两个数据库应该指的是两个SID吧。
      

  6.   


    同一个实例的两个用户之间是可以通过 dblink互相访问的,方法如下:查询一下你的数据库的global_nameselect * from global_name;--假设结果是 ABC
    创建dblinkcreate public database link ABC@XXXXXX
    connect to user_name identified by password 
    using 'ABC';
    说明一下,建dblink会和系统参数global_names的只有些关系,不过用上面的方法去做的话,就不用考虑它的值了,true或者false都好用。
    [SYS@ora10gr1#2009-11-17/08:26:23] SQL>select * from global_name;GLOBAL_NAME
    --------------------------------------------------------------------------------
    ORA10GR1[SYS@ora10gr1#2009-11-17/08:26:27] SQL>create public database link
      2  ora10gr1@public_test01 connect to test01 identified by test01 using 'ora10gr1';Database link created.[SYS@ora10gr1#2009-11-17/08:26:37] SQL>conn test/test
    Connected.Session altered.[TEST@ora10gr1#2009-11-17/08:26:44] SQL>select * from test@ora10gr1@public_test01;        ID
    ----------
            10
             1
      

  7.   

    手动用net manager 配置一下链接远程数据库,然后
    [code=SQL]create public database link LINKA 
      connect to aaa identified by aaa123 
      using '服务名'code]就可以了
      

  8.   

    同一个数据库的话using后面就不要写那么麻烦
    ''里面填上当前连接库的主机字符串即可
    如果还不行,试试用aaa用户登录是否正常