使用Oracle Brio访问多个数据源

时间:2008-12-02 03:47:37

标签: sql oracle brio

尝试使用Oracle的Brio构建仪表板。我必须访问6个不同的数据库来获取相同类型的数据,聚合并显示它。除了当我这样做时,Brio从第一个来源获取数据就好了。当我从第二个数据源获取数据时,Brio用第二个数据集替换原始数据。所以我无法聚合数据。谁能帮助我弄清楚我怎么能在Brio中做到这一点呢?

2 个答案:

答案 0 :(得分:1)

您需要使用UNION语句,而不是运行查询6次。

例如:

不要这样做

SELECT * FROM DATABASE_1..TABLE_1
GO
SELECT * FROM DATABASE_2..TABLE_1
GO
SELECT * FROM DATABASE_3..TABLE_1
GO

改为

SELECT * FROM DATABASE_1..TABLE_1
UNION
SELECT * FROM DATABASE_2..TABLE_1
UNION
SELECT * FROM DATABASE_3..TABLE_1
GO

答案 1 :(得分:1)

如果您为每个来源使用不同的OCE文件 - 正如您可能的那样 - 那么就没有简单的方法可以做到这一点。您需要为每个OCE文件单独查询

如果可以在一个OCE文件下找到所有数据库,则可以使用UNION技巧;更重要的是,在Brio中它被发现为“附加查询”。只需确保根据返回的内容以与第一个查询相同的方式构建查询;所有列标题都来自它。

如果您需要将不同的查询合并到一个结果部分中,我发现仅使用标准Brio函数执行此操作的最简单 - 唯一的方法是通过完全外部联接来连接每个集合在每个领域,然后将每个领域合并在一起......但这是非常低效的,并不会完成更大的文件。你最好整理文件并编写一个javascript例程来解析它们,或者首先在Brio之外完成整个事情。