同一个oracle实例,不需要dblink。你只要把其他用户的A表的select权限给予你登录的这个用户。 然后用union all来合并各个表即可。比如:连接数据库的用户是 B,其他15个用户是A1~A15则 A1~A15的A表的select权限 都给B,那么B连接进去之后,即可采用 select * from B.A -- 表示用户模式B下的A表 unoin all select * from A1.A -- 表示用户模式A1下的A表 unoin all select * from A2.A . . . unoin all select * from A15.A来得到所有数据。如果是在不同的实例,则需要建DBlink,建好dblink之后,查询方式为:select * from A unoin all select * from A@db_lnkA1 -- 这种方式下,不需要加用户模式,用户模式已包含在dblink定义中 unoin all select * from A@db_lnkA2 . . . unoin all select * from A@db_lnkA15
然后用union all来合并各个表即可。比如:连接数据库的用户是 B,其他15个用户是A1~A15则
A1~A15的A表的select权限 都给B,那么B连接进去之后,即可采用
select * from B.A -- 表示用户模式B下的A表
unoin all
select * from A1.A -- 表示用户模式A1下的A表
unoin all
select * from A2.A
.
.
.
unoin all
select * from A15.A来得到所有数据。如果是在不同的实例,则需要建DBlink,建好dblink之后,查询方式为:select * from A
unoin all
select * from A@db_lnkA1 -- 这种方式下,不需要加用户模式,用户模式已包含在dblink定义中
unoin all
select * from A@db_lnkA2
.
.
.
unoin all
select * from A@db_lnkA15