一个可恶的database link 问题

上一篇 / 下一篇  2008-06-28 11:11:31 / 个人分类:Oracle

  • 文件版本: V1.0
  • 开发商: 本站原创
  • 文件来源: 本地
  • 界面语言: 简体中文
  • 授权方式: 免费
  • 运行平台: Win9X/Win2000/WinXP
51Testing软件测试网qOdt.AeG

 今天遇到一例比较奇怪的oracle数据库问题,发生在帮忙为一个同事建立一个从DB A到DB B的数据库连接时:
&D`"\e/~([0create public database link db_a_to_b51Testing软件测试网 L!i9k]l^%Df,n8v
connect to SYSTEM identified by password   
'W*E O+fZ*m0?-CZ-A0using '(DEscrīptION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orab) ) )';51Testing软件测试网4} Jv"yj
51Testing软件测试网*C.xKOJd3tS E M
sqlplus提示创建database link成功,然后在数据库A中查询一个基于DB B的视图,结果老是提示 ora-12560:协议适配器错误,视图定义如下:
FN XhlF0create or replace view usera.viewa51Testing软件测试网~d.{w(Uf&^^U
as select * from viewb@db_a_to_b;
I V P8U6Rh7iMx'O0
hmW@,F)eu {L0但是直接连接DB A使用下列SQL查询是没有问题的:51Testing软件测试网+^ B)gZ1x[ V
select * from viewb@db_a_to_b;
g K.N7H*c$n#G051Testing软件测试网G[ szJ"\?`8m*W O
这样就可以初步排除是Database link建立不正确的原因了。通过sqlplus连上DB A,将视图viewa删除重建,结果问题出来了,视图无法创建成功,提示
Xar)q{)w&g0“警告: 创建的视图带有编译错误”。51Testing软件测试网8z Qo9Q(cm|FVN
使用show errors提示没有错误,这下彻底抓狂了,没有头绪去找原因了。如此大约过了十分钟,心血来潮地去看了看数据字典中存放usera对象的情况:
!sT,x+u(M*O0select *
6WK{ `{0DhQ'^0from dba_obejcts where ōwner='USERA';51Testing软件测试网$fI"z#P.a9k\Mg:K'c
结果发现了一个与db_a_to_b同名的用户级database link,一切恍然大悟了,使用usera登陆后删除掉这个可恶的database link后,一切问题解决。

)W&}'Y6Q.S~&k#[0

TAG: Oracle

 

评分:0

我来说两句

Open Toolbar