Oracle:在单行中查询多个模式中的相同表

时间:2018-01-09 18:44:23

标签: sql oracle schema union

在Oracle中,有没有办法在同一个数据库中用单行查询多个模式中相同的,结构相同的表?显然假设用户有权访问所有模式,我可以构建一个类似的查询:

docker run -d -it --name my-container $DOCKERID/symfony_3_subscribers_in_file_demo   # name it
docker ps -a               # check to see whether it exited
docker logs my-container   # look up the logs for this container

但是,如果有正确的权限可以说:

,是否可能
select * from schema1.SomeTable
union all
select * from schema2.SomeTable

...并带回所有架构的所有行?与此相关,是否可以选择哪个架构,例如:

select * from allSchema.SomeTable

1 个答案:

答案 0 :(得分:0)

据我所知,最简单的选择是创建一个VIEW(作为所有这些用户的所有表的UNION),然后选择SELECT FROM VIEW。

例如:

create or replace view my_view as
  select 'schema_1' source_schema, id, name from schema_1.table union
  select 'schema_2' source_schema, id, name from schema_2.table union
  ...

-- select all
select * from my_view;

-- select all that belongs to one of schemas
select * from my_view where source_schema = 'schema_1';