急,急,多层数据库链接该如何解决?

kerisyml 2011-03-10 11:33:19
客户方提供了一个视图给我进行查询,我在自己数据库建了一个Database Link进行链接查询。结果查询的时候发现报错:
ORA-02068: following servere error from CZDPT
ORA-00600: internal error code, arguments:...............
ORA-02063: 紧接着2 lines(起自 DBLNK_CZQB).

首先我建的链接DBLNK_CZQB是正确的,客户方提供的别的视图都能正常查阅。这次提供的视图VIEW_TEST不行,查阅了下VIEW_TEST,发现这个视图本身就是链接别的数据库创建的,也用的数据库链接CZDPT。

请问碰到这种情况,我该如何做桥梁来链接呢?急啊
...全文
111 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kerisyml 2011-03-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 minitoy 的回复:]
SQL code
--101
CREATE PUBLIC DATABASE LINK to_205 CONNECT TO tds IDENTIFIED BY wellhope USING '172.16.90.205:1521/orcl';

create view ttttt_1 as
select * from info_user@to_205;
--从102访问101上的view……
[/Quote]

是不是都要创建public链接呢?
minitoy 2011-03-10
  • 打赏
  • 举报
回复
--101
CREATE PUBLIC DATABASE LINK to_205 CONNECT TO tds IDENTIFIED BY wellhope USING '172.16.90.205:1521/orcl';

create view ttttt_1 as
select * from info_user@to_205;
--从102访问101上的view
CREATE PUBLIC DATABASE LINK to_101 CONNECT TO tds IDENTIFIED BY wellhope USING '172.16.90.101:1521/orcl';
SQL> select count(*) from ttttt_1@to_101;

COUNT(*)
----------
1827

SQL>

iqlife 2011-03-10
  • 打赏
  • 举报
回复
跨DBLINK还真的没有试过,不过之前帖子好像也是有问题的,
zhangseyan 2011-03-10
  • 打赏
  • 举报
回复
就是不行啊...

我grant select on table_a to GYA ,GYA是数据库A用户

然后数据库B 用户GYB,建立与A的DBlink,使用的用户是GYA建立的,名字是adata,select * from table_a@adata成功了

然后数据库C 用户GBC 建立与B的DBlink,使用的用户是GYB建立的,名字是bdata,select * from table_a@bdata报错了,表或视图不存在

minitoy 2011-03-10
  • 打赏
  • 举报
回复
没发现问题啊,我从a访问b的视图,b的视图是基于c的表.所以也是跨两个dblink,但是能正常查询[Quote=引用 5 楼 zhangseyan 的回复:]
引用 3 楼 minitoy 的回复:
测试了下dblink嵌套的情况,没发现问题.你问问对方看是否是他们使用的dblink出现了问题

汗...你试的没问题?那我吃晚饭再看下去,我嵌套貌似不行啊
[/Quote]
kerisyml 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhangseyan 的回复:]
不可以的,我刚才试了下


对方对这个视图的操作权限是基于上一个DBlink中的USER的权限的,对方在操作视图的时候view@***其实是调用他的DBlink用户权限,本身并没有这个视图的权限,你新建的DBLINK是引用的对方提供的中间那一层的用户权限,实际是没有对前一个用户的权限的,让他们把这个视图同步到上个数据库吧
[/Quote]


正解,问题就是我不能直接连那个数据库啊,必须用中间这个库啊
zhangseyan 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 minitoy 的回复:]
测试了下dblink嵌套的情况,没发现问题.你问问对方看是否是他们使用的dblink出现了问题
[/Quote]
汗...你试的没问题?那我吃晚饭再看下去,我嵌套貌似不行啊
zhangseyan 2011-03-10
  • 打赏
  • 举报
回复
不可以的,我刚才试了下


对方对这个视图的操作权限是基于上一个DBlink中的USER的权限的,对方在操作视图的时候view@***其实是调用他的DBlink用户权限,本身并没有这个视图的权限,你新建的DBLINK是引用的对方提供的中间那一层的用户权限,实际是没有对前一个用户的权限的,让他们把这个视图同步到上个数据库吧
minitoy 2011-03-10
  • 打赏
  • 举报
回复
测试了下dblink嵌套的情况,没发现问题.你问问对方看是否是他们使用的dblink出现了问题
minitoy 2011-03-10
  • 打赏
  • 举报
回复
莫非是对方的dblink出问题了?
zhangseyan 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 minitoy 的回复:]
SQL code
--101
CREATE PUBLIC DATABASE LINK to_205 CONNECT TO tds IDENTIFIED BY wellhope USING '172.16.90.205:1521/orcl';

create view ttttt_1 as
select * from info_user@to_205;
--从102访问101上的view……
[/Quote]
哦,这个视图是101的,我试了一下在101上建205的视图,再建101的DBlink可以查询到,不好意思,没看清题目

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧