Доступ к нескольким источникам данных с использованием Oracle Brio - PullRequest
0 голосов
/ 02 декабря 2008

Попытка построить панель мониторинга, используя Oracle Brio. Мне нужно получить доступ к 6 различным базам данных, чтобы получить данные одного типа, объединить их и отобразить. За исключением того, что, когда я делаю это, Брио просто отлично получает данные из первого источника. Когда я получаю данные из второго источника данных, Brio заменяет исходные данные вторым набором. Поэтому я не могу агрегировать данные. Может кто-нибудь помочь мне понять, как я могу сделать это в Brio, пожалуйста?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Если вы используете разные файлы OCE для каждого источника - как вы, вероятно, - то нет простого способа сделать это. Вам понадобится отдельный запрос для каждого файла OCE

Если все ваши базы данных можно найти в одном файле OCE, вы можете использовать трюк UNION; Более того, в Brio он встречается как «Добавить запрос». Просто убедитесь, что вы строите запрос идентично первому запросу с точки зрения того, что он возвращает; все заголовки столбцов будут из него.

Если вам нужно объединить различные запросы в один раздел результатов, я обнаружил, что самый простой, ну и единственный, способ сделать это с использованием только стандартных функций Brio - это объединить каждый набор с помощью полного внешнего объединения. на каждом поле, а затем объединить каждое поле вместе ... но это ужасно неэффективно и не закончится для больших файлов. Возможно, вам будет лучше отсортировать файлы и написать подпрограмму javascript для их совместного анализа, либо в первую очередь выполнить все это вне Brio.

1 голос
/ 03 февраля 2009

Вам нужно использовать оператор 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
...