一个可恶的database link 问题

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

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

?h2KkC|#Qc r0

 今天遇到一例比较奇怪的oracle数据库问题,发生在帮忙为一个同事建立一个从DB A到DB B的数据库连接时:51Testing软件测试网 y5^U G-v
create public database link db_a_to_b
.i*o)``*]`q0connect to SYSTEM identified by password   
l(@#~"y9f)bc0using '(DEscrīptION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orab) ) )';51Testing软件测试网usn TfmD
51Testing软件测试网p8y,E;OHf{W0{
sqlplus提示创建database link成功,然后在数据库A中查询一个基于DB B的视图,结果老是提示 ora-12560:协议适配器错误,视图定义如下:51Testing软件测试网%n X @L s9P!O
create or replace view usera.viewa
R;c-xLV0as select * from viewb@db_a_to_b;
K;|'B4\]`051Testing软件测试网Y3Rg3[4B
但是直接连接DB A使用下列SQL查询是没有问题的:51Testing软件测试网J?yDGte"e
select * from viewb@db_a_to_b;
WK:O8K0vKK fZ0_0
(nz'`@$p$@!uQx `0这样就可以初步排除是Database link建立不正确的原因了。通过sqlplus连上DB A,将视图viewa删除重建,结果问题出来了,视图无法创建成功,提示
1q.oN v5L9pQ0“警告: 创建的视图带有编译错误”。51Testing软件测试网e+No?1cH6x.G:lF
使用show errors提示没有错误,这下彻底抓狂了,没有头绪去找原因了。如此大约过了十分钟,心血来潮地去看了看数据字典中存放usera对象的情况:
"ohEdAL;qQ0select *51Testing软件测试网PS0Z2j$Le b7o`
from dba_obejcts where ōwner='USERA';51Testing软件测试网 t4VEn o[|
结果发现了一个与db_a_to_b同名的用户级database link,一切恍然大悟了,使用usera登陆后删除掉这个可恶的database link后,一切问题解决。

]:XCBmSX-i0

TAG: Oracle

 

评分:0

我来说两句

Open Toolbar