日期:2014-05-17  浏览次数:20873 次

oracle11g中创建dblink怎么名字变了且不可用?
Create public  database link mydblink1 Connect to myuser identified by myuserpassword using 'mylinkdb';   
已配置好网络服务名mylinkdb确保可用的

结束创建后,本来名字是mydblink1,
却变成了mydblink1.fc.rtfgj.net
然后查询时
select * from myuser.mytbl@mydblink1
select * from myuser.mytbl@mydblink1.fc.rtfgj.net
都提示ora-12154无法解析指定的连接标识符,为什么呢?
急,急! 请大家帮忙!


------解决方案--------------------
数据链名字好像根据操作系统类型自动添加成新名字。
------解决方案--------------------
select * from myuser.mytbl@mydblink1
改成如下:
select * from mytbl@mydblink1
 或者
select * from mydblink1.mytbl
。。。。。
------解决方案--------------------
本来名字是mydblink1,却变成了mydblink1.fc.rtfgj.net

--名字会自动加后缀,哪个都能用

但是'mylinkdb'是确保可用的

--你认为的确保可用不是数据库认为的确保可用
------解决方案--------------------
SQL> show parameter global_names

NAME      TYPE  VALUE
------------------------------------ ----------- 
global_names      boolean  FALSE

global_names参数并不是用来控制global_name的,而是用来限制dblink的使用.global_names参数的作用,简单得说来就是:当global_names参数设置为TRUE时,使用dblink的名称必须与被连接库的GLOBAL_NAME一致
所以,你检查一下这个参数试试