求助: Oracle能否实现 A数据库 建一个视图 去查询B数据表数据?

时间:2021-08-26 12:32:51
例如现在有 A、 B 两个数据库,其中在A数据库中建视图  testquery 查询 B 数据库中 empress表数据,请问这样能实现吗? 怎么建这个 tesetquery视图?

9 个解决方案

#1



create view testquery
(id , name )
as
select id , name from empress@oa


这样可以写,是可以执行的吗?

#2


引用 1 楼 qqhw123 的回复:

create view testquery
(id , name )
as
select id , name from empress@oa


这样可以写,是可以执行的吗?


提示 ORA-12170:TNS:连接超时..

#3


先在A数据库上建立B数据库的dblink,然后才能在A上建这个视图,具体怎么建百度下就有了

#5


引用 3 楼 bw555 的回复:
先在A数据库上建立B数据库的dblink,然后才能在A上建这个视图,具体怎么建百度下就有了


嗯,已经发现了这个问题。前面 创建的dblink没有生效,创建dblink 有权限要求吗?
之前用普通用户没有成功,后来用管理员创建成功了。

谢谢帮忙!

#6


引用 4 楼 bw555 的回复:
Oracle数据库链Database links


dblink建立成功了,不过查询还是不行。

我建立了一个dblink 名称为: linkoa

select * from testquery@oa   这样写是正确的吗?

现在查询不成功。

#7


 grant create database link to 用户名;

#8


查了查文档还需要两个,一共需要3个权限
grant create public database link to 用户名;
grant drop public database link to 用户名;
grant create database link to 用户名;

#9


引用 8 楼 bw555 的回复:
查了查文档还需要两个,一共需要3个权限
grant create public database link to 用户名;
grant drop public database link to 用户名;
grant create database link to 用户名;


如果我查询的用户是创建这个dblink的用户,这样也不行吗?
必须把public权限给这个dblink么?

已经这么做了, 然后把查询的名称调整了下。已经可以查到数据。不过视图前面有红叉 就忽略了。

再次感谢!

#1



create view testquery
(id , name )
as
select id , name from empress@oa


这样可以写,是可以执行的吗?

#2


引用 1 楼 qqhw123 的回复:

create view testquery
(id , name )
as
select id , name from empress@oa


这样可以写,是可以执行的吗?


提示 ORA-12170:TNS:连接超时..

#3


先在A数据库上建立B数据库的dblink,然后才能在A上建这个视图,具体怎么建百度下就有了

#4


#5


引用 3 楼 bw555 的回复:
先在A数据库上建立B数据库的dblink,然后才能在A上建这个视图,具体怎么建百度下就有了


嗯,已经发现了这个问题。前面 创建的dblink没有生效,创建dblink 有权限要求吗?
之前用普通用户没有成功,后来用管理员创建成功了。

谢谢帮忙!

#6


引用 4 楼 bw555 的回复:
Oracle数据库链Database links


dblink建立成功了,不过查询还是不行。

我建立了一个dblink 名称为: linkoa

select * from testquery@oa   这样写是正确的吗?

现在查询不成功。

#7


 grant create database link to 用户名;

#8


查了查文档还需要两个,一共需要3个权限
grant create public database link to 用户名;
grant drop public database link to 用户名;
grant create database link to 用户名;

#9


引用 8 楼 bw555 的回复:
查了查文档还需要两个,一共需要3个权限
grant create public database link to 用户名;
grant drop public database link to 用户名;
grant create database link to 用户名;


如果我查询的用户是创建这个dblink的用户,这样也不行吗?
必须把public权限给这个dblink么?

已经这么做了, 然后把查询的名称调整了下。已经可以查到数据。不过视图前面有红叉 就忽略了。

再次感谢!